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")

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
    

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.


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.


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)


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 .


4

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

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

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.


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"


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

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

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"
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.