Usuń pliki lub foldery rekursywnie w systemie Windows CMD


139

Jak rekursywnie usuwać pliki lub foldery w systemie Windows z wiersza poleceń?

Znalazłem to rozwiązanie, w którym ścieżkę jeździmy w wierszu poleceń i uruchamiamy to polecenie.

Podałem przykład z folderem z rozszerzeniem pliku .svn:

for /r %R in (.svn) do if exist %R (rd /s /q "%R")

Co masz na myśli mówiąc „dokąd jedziemy” ?
Peter Mortensen

Odpowiedzi:


132

Wykonaj następujące kroki:

  1. Otwórz wiersz polecenia
  2. Zmień katalog na wymaganą ścieżkę
  3. Wydaj następujące polecenie

    del /S *.svn
    

4
U mnie nie działa, usuwa tylko pliki w bieżącym katalogu.
delphirules

126

Inne odpowiedzi nie działały dla mnie, ale to:

del /s /q *.svn
rmdir /s /q *.svn

/ q wyłącza monity Tak / Nie

/ s oznacza usunięcie pliku (i) ze wszystkich podkatalogów.


Myślę, że moje potrzeby są takie same, jak to, co próbujesz zrobić - próbuję usunąć wszystkie foldery .svn w katalogu projektu i wszystkie podkatalogi. W systemie Windows 2012 ta odpowiedź nie działa dla mnie. Usuwa folder .svn w bieżącym katalogu, ale nie z żadnego z katalogów podrzędnych.
Jim

46

Możesz użyć tego w batskrypcie:

rd /s /q "c:\folder a"

Teraz po prostu zmień c:\folder alokalizację folderu. Cytowanie jest potrzebne tylko wtedy, gdy nazwa folderu zawiera spacje.


To polecenie nie działa i generuje błąd, jak poniżej D: \> rd / s / q "D: \ Root a" System nie może znaleźć określonego pliku.
abhayk

6
O ile twój katalog naprawdę nie ma space aw nazwie, pomiń tę część.
Jesse Chisholm

22
RMDIR path_to_folder /S

dawny. RMDIR "C:\tmp" /S

Zauważ, że zostaniesz zapytany, czy naprawdę chcesz usunąć folder „C: \ tmp”. Połączenie go z przełącznikiem / Q spowoduje ciche usunięcie folderu (np. RMDIR "C:\tmp" /S /Q)


8

Aby usunąć plik, napisałem następujący prosty plik wsadowy, który rekursywnie usuwał wszystkie pliki .pdf:

del /s /q "\\ad1pfrtg001\AppDev\ResultLogs\*.pdf"
del /s /q "\\ad1pfrtg001\Project\AppData\*.pdf"

Nawet dla lokalnego katalogu możemy go użyć jako:

del /s /q "C:\Project\*.pdf"

To samo można zastosować do usuwania katalogu, w którym wystarczy zmienić del za pomocą rmdir .


4

Jeśli chcesz rekurencyjnie usunąć określone rozszerzenie, użyj tego:

For /R "C:\Users\Desktop\saleh" %G IN (*.ppt) do del "%G"

3

Możesz też:

del /s /p *.{your extension here}

Pojawi /psię monit o każdy znaleziony plik, jeśli denerwujesz się usunięciem czegoś, czego nie powinieneś.



2

Użyj polecenia rmdir systemu Windows

To znaczy rmdir / S / Q C: \ Temp

Te również używam od kilku lat bezbłędnie.

Sprawdź inne opcje z: forfiles /?

Usuń rekursywnie SQM / telemetrię w folderze systemu Windows

forfiles /p %SYSTEMROOT%\system32\LogFiles /s /m *.* /d -1 /c "cmd /c del @file"

Usuń rekursywnie pliki Windows TMP

forfiles /p %SYSTEMROOT%\Temp /s /m *.* /d -1 /c "cmd /c del @file"

Usuń rekursywnie pliki i foldery TEMP użytkowników

forfiles /p %TMP% /s /m *.* /d -1 /c "cmd /c del @file"

2

Do całkowitego wyczyszczenia folderu natywnymi poleceniami i uzyskania dziennika o tym, co zostało zrobione.

oto niezwykły sposób na zrobienie tego:

załóżmy, że chcemy wyczyścić katalog d: \ temp

mkdir d:\empty
robocopy /mir d:\empty d:\temp
rmdir d:\empty

To bardzo sprytne rozwiązanie, które rozwiązało mój problem. Użyłem robocopy do skopiowania mojego katalogu AppData, nie myśląc o Junction, który sam się odwołuje. Tylko w ten sposób mogłem rekurencyjnie usunąć wszystkie ukryte pliki. Nigdy nie zapomnij o / xj!
Chris Larabell

0

W przypadku plików ukrytych musiałem użyć następującego:

DEL /S /Q /A:H Thumbs.db

Przestarzały. Windows XP nie jest obsługiwany przez Microsoft co.
Mesalcode

Musiałem tego użyć, aby usunąć pliki .dcm, które zostały po przywracaniu kopii zapasowej (Windows 10)
Gerald Murphy

0
dir /b %temp% >temp.list
for /f "delims=" %%a in (temp.list) do call rundll32.exe advpack.dll,DelNodeRunDLL32 "%temp%\%%a"
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.