Вопрос Как рекурсивно удалить каталог из командной строки в Windows?


Что такое эквивалент окна rm -r [directory-name]?


212
2017-08-23 19:29


происхождения




ответы:


deltree если я помню мой DOS,


Кажется, он обновлен ... это то, что вы хотите:

RMDIR /S

Это удаляет каталог C:\test, с подсказками:

rmdir c:\test /s

Это делает то же самое, без подсказок:

rmdir c:\test /s /q

Что касается части sudo вашего вопроса, если вам нужно больше привилегий, вы можете сначала открыть новую оболочку в качестве другой учетной записи пользователя, используя runas команды:

runas /user:Administrator cmd
rmdir c:\test /s /q

311
2017-08-23 19:30



@FarmBoy, извинения, казалось бы, мои воспоминания заходят слишком далеко назад. Я обновил ответ для Windows XP и новее. - Colin Pickard
да deltree это старая команда DOS. Он был удален в XP и заменен на rmdir /s - heavyd
Что означает флаг / s? - Mike R
По какой-то причине возникает проблема, если вы делаете это в Powershell. Поэтому просто используйте командную строку Windows. - Devid
@MikeR, это может означать «подкаталоги» или что-то в этом роде. findstr имеет тот же параметр, который имеет больше смысла в этом случае, поэтому, возможно, они одинаковы для согласованности. - Sam


Если вы хотите удалить длинную и сложную структуру папок из командной строки, которую RmDir не коснется, и даже не может показать проводник, я обнаружил, что robocopy может быть очень эффективным при удалении структуры. В приведенном ниже примере у нас массивная структура внутри администратора папки, структура настолько глубока, что ничто не может ее удалить. Мы создаем новую пустую папку (как ни странно!) «Новая папка». Затем мы используем команду robocopy, сообщая, что исходной папкой является «новая папка», а целевая папка - «D: \ Administrator» с параметром / MIR, что означает, что она очистит все, что находится в исходной папке.

robocopy "D:\new folder" D:\Administrator /MIR

В этом случае пути к папкам были такими длинными, что они даже не поместились бы в окне командной строки «Экранный буфер», но Robocopy будет пересекать структуру и удалять любые «лишние» файлы и папки (то есть ничего не в новой пустой папке, которая есть все ).


54
2017-08-09 23:13



Это единственное решение, которое будет работать, когда ваш путь длиннее 250 нечетных символов - Calm Storm


Вы можете сделать следующее в PowerShell, если вы в Windows Vista +:

rm C:\path\to\delete -r -f[orce]

9
2017-08-22 16:51



Windows 10 говорит -f является неоднозначным. Но вы можете запускать rm -r -force <path> - BrunoLM


Для меня, что работает

del /s dir

Можете добавить /q для отключения подтверждения. Мне никогда не удавалось rmdir работает (на XP)


4
2018-05-17 07:42



Вероятно, вам стоит отказаться от использования XP, он больше не поддерживается ... - Eric Wilson
Для меня это удаляет все файлы рекурсивно, но не удаляет сами каталоги - dirтакже не удаляется. - sergiol


Если у вас действительно очень длинный путь (например, из-за ошибки программы Java), даже robocopy не может этого сделать. Он спустился около 30 секунд на мой путь, а затем повесил.

Мое решение: если вы можете переместить весь путь проблемы из одной папки в другую, вы можете отрезать рекурсивно и повторно несколько лестниц в каталоге сверху.

Эта партия играет pingpong между двумя каталогами leer и leer2 и отсекает 8 'библиотеки' каждый раз. Если ваш путь содержит файлы, вам нужно добавить дополнительные команды для их удаления.

recurdel.cmd
:loop
move c:\leer\libraries\libraries\libraries\libraries\libraries\libraries\libraries\libraries c:\leer2
rd /S /Q c:\leer\libraries
move c:\leer2\libraries\libraries\libraries\libraries\libraries\libraries\libraries\libraries c:\leer
rd /S /Q c:\leer2\libraries
GOTO loop

2
2018-03-05 08:37





Из CMD Просто запустите RD / s C: \ path \ to \ delete Поверните Y в подсказку

/ s гарантирует, что все вспомогательные каталоги также удалены.

Справка Бег помощь RD из командной строки


2
2018-01-22 06:44



Спасибо за ваш ответ, но эта информация уже была в принятом ответе. (rd а также rmdir одинаковы.) Возможно, это будет похоже на комментарий. - Ben N


Это приведет к удалению «моей папки» без подсказки:

rd /s /q "C:\Users\gourav.g\AppData\Roaming\my folder"

0
2017-07-04 07:09