Saya ingin menghapus beberapa subdirektori dari direktori yang sama. Direktori memiliki "tmp" sebagai tiga karakter pertama dalam namanya. Ini tidak bekerja:
C:\Documents and Settings\rajesh\Local Settings\Temp> rmdir tmp*
The rmdir
perintah tidak menerima wildcard. Anda dapat menggunakan for
lingkaran kecil untuk mencapai tujuan yang sama. Ini akan menjalankan rmdir
perintah beberapa kali - satu kali untuk setiap file / folder yang cocok dengan pola yang diberikan:
for /D %f in (tmp*) do rmdir %f
/S
di bagian akhir./Q
juga.@
sebelum perintah.Misalnya, dengan semua opsi ini, Anda akan memiliki:
for /D %f in (tmp*) do @rmdir %f /Q /S
Untuk melihat penggunaan penuh, ketik rmdir /?
.
@echo rmdir ...
for /D %f in (tmp*) do @rmdir "%f" /Q /S
cara umum yang aman dan baik adalah membuat file dari direktori yang ingin Anda hapus.
dir /ad > blah
Kemudian periksa file yang Anda inginkan, kemudian buat perintah for yang menggemakan setiap baris file.for /f %a in (blah) do @echo %a
kemudian ubah untuk perintah yang Anda inginkan misalnya baris ini menempatkan rmdir di awal setiap baris filefor /f %a in (blah) do @echo rmdir %a
atau pada akhir untuk menambahkan / q / s ke rmdir% a sudah ada yaitu gunakan @echo rmdir% a / q / s. Dan setelah itu baik-baik saja dengan perintah apa yang akan dijalankan, hapus bagian gema begitufor /f %a in (blah) do @rmdir %a /q /s
Cara lain juga menggunakan metode awal untuk membuat file yang mencantumkan subdirektori untuk dihapus .. Jadi setiap baris file dapat diubah untuk membaca perintah untuk menghapus subdirektori itu. Kemudian gunakan sed pada file untuk mengganti subdirektori x dengan rmdir x / q / s.
Jadi jika Anda memiliki file yang disebut bla.
sed "s/.*/rmdir \0 \/q\/s/" blah >f
type f
lihat itu memiliki semua perintah. untuk menghapus setiap subdirektori. jika Anda senang dengan itu Anda ingin menjalankannya, Anda dapat mengganti nama f ke f.bat dan menjalankannya.sumber