Windows'ta dosya adlarının bir listesini kullanarak dosyaları bir klasörden nasıl silebilirim?


23

2K + dosyalı bir klasörüm var, yaklaşık 200’ü silmem gerekiyor, listedeki bir siparişte kaldırılması gereken tüm dosya adlarını içeren bir txt dosyası var, listeyi kullanarak belirli dosyaları klasörden nasıl kaldırabilirim? (İşletim sistemi windows 7'dir)

Yanıtlar:


18

Basit yol, txt dosyasını mydel.batsilmek için dosyaların dizininde adı verilen bir dosyaya kopyalamaktır . Microsoft Word gibi bir düzenleyici kullanarak bu dosyayı düzenleyin. Normal ^polarak Word'de Newline'da genel bir değiştirme yapın . İle değiştirin space/f^pdelspace. Bu değişecek

File1.bin
File20.bin
File21.bin

( /f"salt okunur dosyaları silmeye zorla" ile):

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

delBoşluk eklemek ve son satırı silmek için ilk satırı düzenleyin .

Toplu iş komutunu çalıştırın.


Görünüşe göre win7 del komutunda çalışmayan / Y düğmesinin dışında, bu oldukça iyi çalıştı .. teşekkürler
Avishking

2
Muhtemelen /fbunun yerine "salt okunur dosyaları silmeye zorla" olması gerekiyordu /y.
afrazier

Doğru havalandırıcı. XCOPY ile çalışan / Y'yi ve bir veya iki diğer DOS programını karıştırıp, 'eylemi onaylamak için
sormayı bastır

Notepad ++ gibi regex ile nasıl bulunacağını / değiştirileceğini bilen editörlerde, "^" yerine "del" ve "$" ile "/ f" ile değiştirmelisiniz, burada ^ her satırın başlangıcını ve $ - son.
Dan Mirescu

38

Bunu komut satırına yazıp dosyanızı şu şekilde değiştirebilirsiniz files_to_delete.txt:

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

Bunun .cmddosyalara dahil edilmesi için uygun bir sürümü (% double) ve dosya adlarındaki boşluklarla başa çıkabilme:

for /f "delims=" %%f in (files_to_delete.txt) do del "%%f"

1
Bu aslında dosyaların kendileri yerine dosya listesini siler ... listeyi tekrar oluşturmak zorunda kaldım: |
Avishking

4
En derin özür dilerim. /fBayrağı unuttum .
William Jackson

Oldukça şık, komut satırının böyle döngüleri desteklediğini bilmiyordum. SU blogu için bu ve komut satırının diğer karmaşıklıkları hakkında bir blog yazısı yazmak ister misiniz?
Ivo Flipse,

1
@Ivo: Daha fazla bilgi edinmek için computerhope.com/batch.htm veya superuser.com/questions/tagged/batch adresini ziyaret etmek isteyebilirsiniz . Unix gibi, komut dosyalarında (toplu iş dosyaları) yapılabilecek işlemlerin çoğu doğrudan komut satırından da yapılabilir.
BlueRaja - Danny Pflughoeft 9:11

Bir yarasa dosyası oluşturdum ve 2. örneği kopyaladım: sonuç: files_to_delete.txt hala kaldırıldı. (/ f bayrağıyla bile)
bvdb

18

PowerShell'i kullanma:

Get-Content c:\path\to\list.txt | Remove-Item

1
Vay, bu toplu işten çok daha okunaklı.
TheLQ

Gelecekteki okuyucular için ... >Bu işi yapmak için boru operatörünü a ile değiştirmek zorunda kaldım . Yani Get-Content c:\path\to\list.txt > Remove-Item... İçimde tam UNC yolları vardı list.txt. Bu yardımcı olur umarım.
NateJ

@NateJ Kullanmayı denedim >ve bu şeyleri silmek yerine sadece benim için bir dosya oluşturdu.
Brian J,

@ BrianJ hmm, ne yaptığımı tekrar kontrol edeceğim .. iyi yakalamak.
NateJ

1

Powershell ile yapılabileceğini hayal ediyorum.

Bilmek Perl , ben bir şey bu tür için kullanma eğiliminde

perl -l -n -e "unlink" filenames.txt

1

İlk yöntem bazı değişikliklerden sonra çalışır:

  1. Not Defteri'ni aç
  2. delGibi başlangıçta eklemeden sonra silinmesi gereken tüm dosya adlarını kopyalayın

    del File1.bin
    del File20.bin
    del File21.bin
    
  3. dosyayı xyz.bataynı klasöre kaydet

  4. dosyayı çalıştır

2
... sorudaki metin dosyasının içinde yaklaşık 200 dosya adı var. delTeklif ettiğiniz gibi manuel olarak neden eklemelisiniz , bunu otomatikleştirmek için çözümler zaten yayınlanmışken? Bir kenara olarak: herhangi bir mantıklı düzenleyici, satır sonları (veya normal ifadeler kullanarak satır başlangıcı), makrolar veya blok veya sütun modu düzenleme (genellikle Seçenek veya Alt tuşunu basılı tutarak başlatıp ardından blok, bundan sonra sadece bir kerede birden fazla satır yazabilirsiniz).
Arjan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.