Синтаксис:
RMDir [/r] [/REBOOTOK] directory_name
Удалить указанный каталог (полный путь без подстановочных знаков). Без /r
каталог будет удален только в том случае, если он полностью пуст. Если указан параметр /r
, каталог будет удален рекурсивно, поэтому будут удалены все каталоги и файлы в указанном каталоге. Если указан параметр /REBOOTOK
, любой файл или каталог, которые не удалось удалить во время процесса, будут удалены при перезагрузке — если какой-либо файл или каталог будут удалены при перезагрузке, будет установлен флаг перезагрузки. Флаг ошибки устанавливается, если какой-либо файл или директория не могут быть удалены.
Пример:
RMDir $INSTDIR
RMDir $INSTDIR\data
RMDir /r /REBOOTOK $INSTDIR
RMDir /REBOOTOK $INSTDIR\DLLs
Обратите внимание, что текущий рабочий каталог (с экзешником) нельзя удалить. Текущий рабочий каталог устанавливается SetOutPath
. Например, следующий пример не удалит каталог:
SetOutPath $TEMP\dir
RMDir $TEMP\dir
В следующем примере удастся удалить каталог:
SetOutPath $TEMP\dir
SetOutPath $TEMP
RMDir $TEMP\dir
Предупреждение: использование RMDir /r $INSTDIR
в деинсталляторе небезопасно. Хотя это маловероятно, пользователь может выбрать установку непосредственно в папку Program Files
, и поэтому эта команда сотрет всю папку Program Files
, включая другие программы, которые не имеют ничего общего с установленной программой.
Доступны решения для более безопасного простого удаления только тех файлов, которые были установлены установщиком.
Перевод: Kolyan Maloy aka Dzhan for tolik-punkoff.com