Bagaimana cara menghapus file dari folder menggunakan daftar nama file di windows?

23

saya punya folder dengan 2K + file di dalamnya, saya perlu menghapus sekitar 200, saya punya file txt dengan semua nama file yang perlu saya hapus dipesan dalam daftar, bagaimana cara menghapus file tertentu dari folder menggunakan daftar? (OS adalah windows 7)

Avishking
sumber

Jawaban:

18

Cara sederhana adalah menyalin file txt ke file yang dipanggil mydel.batdalam direktori file yang akan dihapus. Menggunakan editor seperti Microsoft Word, edit file ini. Lakukan penggantian global pada Newline secara normal ^pdi Word. Ganti dengan space/f^pdelspace. Ini akan berubah

File1.bin
File20.bin
File21.bin

ke (dengan /funtuk "paksa hapus file read-only"):

File1.bin /f
del File20.bin /f
del File21.bin /f
del

Edit garis tinju untuk menambahkan delspasi dan menghapus baris terakhir.

Jalankan perintah batch.

kingchris
sumber
Terlepas dari / Y switch, yang tampaknya tidak berfungsi di win7 del command, ini bekerja dengan sangat baik .. terima kasih
Avishking
2
Itu mungkin seharusnya /funtuk "memaksa menghapus file read-only" bukan /y.
Afrazier
Afrazier yang benar. Saya mencampuradukkan / Y yang bekerja dengan XCOPY dan satu atau dua program DOS lainnya untuk 'Menekan dorongan untuk mengkonfirmasi tindakan'
kingchris
Pada editor yang tahu bagaimana menemukan / mengganti dengan regex, seperti Notepad ++, Anda perlu mengganti "^" dengan "del" dan "$" dengan "/ f", di mana ^ mewakili awal dari setiap baris dan $ - tamat.
Dan Mirescu
38

Ketikkan ini pada baris perintah, gantikan file Anda dengan files_to_delete.txt:

for /f %i in (files_to_delete.txt) do del %i

Versi ini cocok untuk disertakan dalam .cmdfile (dobel %%) dan mampu menangani spasi dalam nama file:

for /f "delims=" %%f in (files_to_delete.txt) do del "%%f"
William Jackson
sumber
1
Ini sebenarnya menghapus daftar file, bukan file itu sendiri ... saya harus membuat daftar lagi: |
Avishking
4
Permintaan maaf terdalam saya Saya lupa /fbendera.
William Jackson
Itu cukup bagus, saya tidak tahu baris perintah mendukung loop seperti itu. Mau menulis posting blog untuk blog SU tentang ini dan seluk-beluk lainnya dari baris perintah?
Ivo Flipse
1
@Ivo: Anda mungkin ingin melihat computerhope.com/batch.htm atau superuser.com/questions/tagged/batch untuk mempelajari lebih lanjut. Seperti Unix, banyak dari apa yang dapat dilakukan dalam skrip (file batch) juga dapat dilakukan langsung dari command-line.
BlueRaja - Danny Pflughoeft
Saya membuat file bat dan menyalin contoh ke-2: hasil: files_to_delete.txt masih dihapus. (Bahkan dengan flag / f)
bvdb
18

Menggunakan PowerShell:

Get-Content c:\path\to\list.txt | Remove-Item
Siim K
sumber
1
Wow, itu jauh lebih mudah dibaca daripada batch.
TheLQ
Untuk pembaca masa depan ... Saya harus mengubah operator pipa menjadi >untuk membuat ini berfungsi. Yaitu Get-Content c:\path\to\list.txt > Remove-Item... Saya memiliki jalur UNC penuh di saya list.txt. Semoga ini membantu.
NateJ
@ NateJ Saya mencoba menggunakan >dan itu baru saja membuat file untuk saya, bukannya menghapus hal-hal.
Brian J
@BrianJ hmm, saya harus memeriksa kembali apa yang saya lakukan .. tangkapan yang bagus.
NateJ
1

Saya membayangkan itu bisa dilakukan dengan PowerShell.

Mengetahui Perl , saya cenderung menggunakannya untuk hal semacam ini

perl -l -n -e "unlink" filenames.txt
RedGrittyBrick
sumber
1

Metode pertama berfungsi setelah beberapa perubahan:

  1. buka Notepad
  2. salin semua nama file dengan ekstensi yang perlu dihapus setelah menambahkan deldi awal seperti

    del File1.bin
    del File20.bin
    del File21.bin
    
  3. simpan file seperti xyz.batdi folder yang sama

  4. jalankan file
Hassan
sumber
2
... file teks dalam pertanyaan memiliki sekitar 200 nama file di dalamnya. Mengapa menambahkan delsecara manual seperti yang Anda usulkan, sementara solusi sudah diposkan untuk mengotomatiskannya? Sebagai tambahan: editor waras akan memiliki beberapa dukungan untuk mencari dan mengganti termasuk akhir baris (atau baris dimulai, menggunakan ekspresi reguler), makro, atau untuk mengedit mode blok atau kolom (sering dimulai dengan menekan Option atau Alt dan kemudian memilih blok, setelah itu kita bisa mengetikkan beberapa baris sekaligus).
Arjan