Задать вопрос
@RageLord

Как в bat файле удалить текущую директорию?

Как удалить текущую директорию? RD %cd% не удаляет, пробовал так же создавать переменную с %cd%, потом переходить в другую и удалять, но так же не работает
  • Вопрос задан
  • 133 просмотра
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@res2001
Developer, ex-admin
Текущий каталог вы не удалите, т.к. он занят вашим же процессом cmd.exe. Надо перейти в другой каталог, а затем уже удалять.
Ответ написан
Комментировать
wisgest
@wisgest
Не ИТ-специалист
Что значит
RD %cd% не удаляет
? — Должно же быть какое-то сообщение об ошибке, которое нужно привести в вопросе.

Если в каталоге есть открытые файлы, он занят какими либо процессами или недостаточно прав для удаления каталога или файлов в нём, то естественно не удалит.

Чтобы каталог не был занят самим процессом cmd.exe перейдите в надкаталог и удалите прежний рабочий каталог:
for %%D in (.) do (cd ..& rd "%%~fD")
или, если переменная среды CD не определена, используйте одноимённую псевдопеременную:
cd ..& rd "%CD%"
В обоих случаях требуется расширенная обработка команд (по умолчанию включена). Команда RD скорее всего потребует дополнительные ключи (/S и /Q).

Следует заметить, что если сам командный файл находится в удаляемом каталоге, то после выполнения текущей команды (возможно, составной) последующие команды выполнены не будут, так как командные файлы в память целиком не считываются.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы