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)

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.


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"

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

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

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

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
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.