Як рекурсивно видалити каталог з командного рядка у вікнах?


Відповіді:


323

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

1
@FarmBoy, вибачення, здається, мої спогади йдуть занадто далеко назад. Я оновив відповідь для Windows XP і новіших.
Colin Pickard

8
так deltree - це стара команда DOS. Він був вилучений в XP і замінений rmdir /s
heavyd

3
Для чого стоїть прапор / s?
Mike R

З якоїсь причини є проблема, якщо ви зробите це в Powershell. Так що просто використовуйте командний рядок Windows.
Devid

3
@MikeR, це може означати "підкаталоги" або щось інше. findstr має той самий параметр, що робить його більш обґрунтованим, так що, можливо, вони однакові для узгодженості.
Sam

57

Якщо ви хочете видалити довгу і складну структуру папок з командного рядка, що RmDir не торкнеться і навіть не може відобразити провідник, я знайшов, що робокопій може бути дуже ефективним при видаленні структури. У наведеному нижче прикладі ми маємо масивну структуру всередині адміністратора папок, структура настільки глибока, що ніщо не може її видалити. Створюємо нову порожню папку з назвою (дивно!) "Нова папка". Потім ми використовуємо команду robocopy, вказуючи, що вихідна папка є "новою папкою", а папка призначення - "D: Administrator" з параметром / MIR, що означає, що він нічого не буде вилучено у вихідній теці.

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

У цьому випадку доріжки папок були настільки довгими, що вони навіть не помістилися б у вікні командного рядка Screen Buffer, але Robocopy буде проходити структуру і видаляти будь-які "зайві" файли і папки (тобто нічого, що не в новій порожній папці, а це все ).


11
Це єдине рішення, яке буде працювати, якщо ваш шлях перевищує 250 непарних символів
Calm Storm

9

У PowerShell можна виконати наведені нижче дії.

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

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

5

Для мене, що працює

del /s dir

Можна додати /q , щоб вимкнути підтвердження. Мені так і не вдалося rmdir працює (на XP)


5
Ви, ймовірно, повинні припинити використовувати XP, він не підтримується більше ...
Eric Wilson

3
Для мене це видаляє всі файли рекурсивно, але не видаляє самі каталоги - dir також не видаляється.
sergiol

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 Натисніть Y на підказку

/ s гарантує видалення всіх підкаталогів.

Довідка Запустити допомога RD з командного рядка


2
Дякуємо за вашу відповідь, але ця інформація вже була у прийнятій відповіді. ( rd і rmdir Можливо, він підійде як коментар.
Ben N

0

Це видалить "мою папку" без запиту:

rd /s /q "C:\Users\gourav.g\AppData\Roaming\my folder"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.