Hapus beberapa direktori dengan awalan umum pada prompt perintah

0

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*
HOLYBIBLETHE
sumber

Jawaban:

3

The rmdirperintah tidak menerima wildcard. Anda dapat menggunakan forlingkaran kecil untuk mencapai tujuan yang sama. Ini akan menjalankan rmdirperintah beberapa kali - satu kali untuk setiap file / folder yang cocok dengan pola yang diberikan:

for /D %f in (tmp*) do rmdir %f

  • Catatan jika folder tidak kosong, dan Anda ingin folder itu muncul lagi, Anda harus menambahkannya /Sdi bagian akhir.
  • Jika Anda ingin mencegah cek konfirmasi, tambahkan /Qjuga.
  • Jika Anda ingin mencegahnya mencetak perintah untuk setiap baris, tambahkan @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 /?.

tenorkev
sumber
dan dia harus menggema dulu. @echo rmdir ...
barlop
1
Dalam kasus folder memiliki karakter spasi yang harus Anda gunakanfor /D %f in (tmp*) do @rmdir "%f" /Q /S
Adi Roiban
-1 karena ini tidak akan berfungsi untuk spasi di nama file. Perlu menambahkan kutipan ke% f.
user2924019
Jika Anda menjalankan perintah ini dalam file Batch DOS maka pastikan untuk menggunakan persen ganda yaitu untuk / D %% f in (tmp *) do @rmdir %% f / Q / S
Sam B
0

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 %akemudian ubah untuk perintah yang Anda inginkan misalnya baris ini menempatkan rmdir di awal setiap baris file for /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.

barlop
sumber