224

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

7 ответов7

326

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
57

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

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

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

9

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

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

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

del /s dir

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

2

Если у вас действительно очень длинный путь (как я сделал из-за ошибки 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

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

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

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

0

Это удалит "мою папку" без приглашения:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .