Hapus file atau folder secara rekursif pada Windows CMD

135

Bagaimana cara menghapus file atau folder secara rekursif pada Windows dari baris perintah?

Saya telah menemukan solusi ini di mana jalur yang kita kendarai di baris perintah dan jalankan perintah ini.

Saya telah memberikan contoh dengan folder ekstensi file .svn:

for /r %R in (.svn) do if exist %R (rd /s /q "%R")
modasser
sumber
Apa yang Anda maksud dengan "di mana jalur yang kita lewati" ?
Peter Mortensen

Jawaban:

129

Silakan lakukan langkah-langkah berikut:

  1. Buka prompt perintah
  2. Ubah direktori ke jalur yang diperlukan
  3. Berikan perintah berikut

    del /S *.svn
    
DGuntoju
sumber
4
Tidak berfungsi untuk saya, hanya menghapus file di direktori saat ini.
delphirules
119

Jawaban lain tidak berhasil untuk saya, tetapi ini berhasil:

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

/ q menonaktifkan Ya / Tidak membisikkan

/ s berarti menghapus file dari semua subdirektori.

Lucas
sumber
Saya pikir kebutuhan saya sama dengan apa yang Anda coba lakukan - Saya mencoba untuk menghapus semua folder .svn dalam direktori proyek dan semua subdirektori. Di Windows 2012, jawaban ini tidak berfungsi untuk saya. Itu menghapus folder .svn di direktori saat ini, tetapi tidak dari direktori anak.
Jim
42

Anda dapat menggunakan ini dalam batskrip:

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

Sekarang, ubah saja c:\folder ake lokasi folder Anda. Kutipan hanya diperlukan ketika nama folder Anda berisi spasi.

Sean Vaughn
sumber
Perintah ini tidak berfungsi dan melempar kesalahan seperti di bawah ini D: \> rd / s / q "D: \ Root a" Sistem tidak dapat menemukan file yang ditentukan.
abhayk
5
Kecuali direktori Anda benar-benar memiliki space anama, tinggalkan bagian itu.
Jesse Chisholm
22
RMDIR path_to_folder /S

ex. RMDIR "C:\tmp" /S

Perhatikan bahwa Anda akan diminta jika Anda benar-benar akan menghapus folder "C: \ tmp". Menggabungkannya dengan / Q switch akan menghapus folder secara diam-diam (mis. RMDIR "C:\tmp" /S /Q)

Anton
sumber
8

Untuk penghapusan file, saya menulis file batch sederhana yang menghapus semua .pdf secara rekursif:

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

Bahkan untuk direktori lokal kita dapat menggunakannya sebagai:

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

Hal yang sama dapat diterapkan untuk penghapusan direktori di mana kita hanya perlu mengubah del dengan rmdir .

khichar.anil
sumber
4

Jika Anda ingin menghapus ekstensi tertentu secara rekursif, gunakan ini:

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

Anda juga bisa:

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

The /pakan meminta Anda untuk setiap file berhasil ditemukan, jika Anda gugup tentang menghapus sesuatu yang tidak seharusnya.

Michael Armes
sumber
2

Gunakan perintah rmdir Windows

Yaitu, rmdir / S / Q C: \ Temp

Saya juga menggunakan yang di bawah ini selama beberapa tahun sekarang, tanpa cacat.

Lihat opsi lain dengan: forfiles /?

Hapus SQM / Telemetri di folder windows secara rekursif

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

Hapus file TMP windows secara rekursif

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

Hapus file dan folder TEMP pengguna secara rekursif

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

Untuk benar-benar menghapus folder dengan perintah asli dan mendapatkan log pada apa yang sudah dilakukan.

inilah cara yang tidak biasa untuk melakukannya:

mari kita asumsikan kita ingin menghapus dir d: \ temp

mkdir d:\empty
robocopy /mir d:\empty d:\temp
rmdir d:\empty
Maks
sumber
Ini adalah solusi yang sangat cerdas yang menyelesaikan masalah saya. Saya menggunakan robocopy untuk menyalin direktori AppData saya, tidak memikirkan Junction referensi diri. Ini adalah satu-satunya cara saya bisa menghapus semua file yang tersembunyi secara rekursif. Jangan lupakan / xj!
Chris Larabell
0

Untuk file tersembunyi saya harus menggunakan yang berikut ini:

DEL /S /Q /A:H Thumbs.db
Selrac
sumber
Ketinggalan jaman. Windows XP tidak lagi didukung oleh microsoft co.
Mesalcode
Saya harus menggunakan ini untuk menghapus file .dcm yang tersisa dari pemulihan cadangan (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"
alexsupra
sumber