it-swarm-ru.tech

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

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

230
Eric Wilson

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
334
Colin Pickard

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

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

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

57
Sean

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

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

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

del /s dir

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

5
Vincent Fourmond

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

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

Этот пакет играет в пинг-понг между двумя каталогами 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
Paulmann

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

/ s обеспечивает удаление всех подкаталогов.

Справка Запустите справку RD из командной строки

2
Rachit Ranjan

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

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