Jak usunąć pliki z folderu przy użyciu listy nazw plików w systemie Windows?

23

mam folder z plikami 2K +, muszę usunąć około 200, mam plik txt ze wszystkimi nazwami plików, które muszę usunąć uporządkowane na liście, jak usunąć określone pliki z folderu przy użyciu listy? (OS to Windows 7)

Avishking
źródło

Odpowiedzi:

18

Prostym sposobem jest skopiowanie pliku txt do pliku wywołanego mydel.batw katalogu plików do usunięcia. Za pomocą edytora takiego jak Microsoft Word edytuj ten plik. Wykonuj globalne zastępowanie na Newline normalnie ^pw programie Word. Zamień na space/f^pdelspace. To się zmieni

File1.bin
File20.bin
File21.bin

do (z /f„wymuszaj usuwanie plików tylko do odczytu”):

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

Edytuj linię pięści, aby dodać delspację i usuń ostatnią linię.

Uruchom polecenie wsadowe.

kingchris
źródło
Oprócz przełącznika / Y, który najwyraźniej nie działa w poleceniu win7 del, działało to całkiem dobrze .. dzięki
Avishking
2
Prawdopodobnie powinno to dotyczyć /f„wymuszania usuwania plików tylko do odczytu” zamiast /y.
afrazier
Poprawnie afrazier.
Mieszałem
W edytorach, którzy wiedzą, jak znaleźć / zamień na wyrażenie regularne, takich jak Notepad ++, musisz zamienić „^” na „del” i „$” na „/ f”, gdzie ^ oznacza początek każdego wiersza, a $ - koniec.
Dan Mirescu,
38

Wpisz to w wierszu polecenia, zastępując plik files_to_delete.txt:

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

Wersja tego odpowiednia do włączenia do .cmdplików (podwójny %%) i zdolna do radzenia sobie ze spacjami w nazwach plików:

for /f "delims=" %%f in (files_to_delete.txt) do del "%%f"
William Jackson
źródło
1
To faktycznie usunęło listę plików zamiast samych plików ... musiałem ponownie utworzyć listę: |
Avishking,
4
Moje najgłębsze przeprosiny. Zapomniałem /fflagi.
William Jackson,
To całkiem fajne, nie wiedziałem, że takie wiersze obsługują wiersze poleceń. Chcesz napisać wpis na blogu SU o tym i innych zawiłościach wiersza poleceń?
Ivo Flipse,
1
@Ivo: możesz dowiedzieć się więcej na computerhope.com/batch.htm lub superuser.com/questions/tagged/batch . Podobnie jak Unix, wiele z tego, co można zrobić w skryptach (plikach wsadowych), można również wykonać bezpośrednio z wiersza poleceń.
BlueRaja - Danny Pflughoeft
Utworzyłem plik nietoperza i skopiowałem drugi przykład: wynik: plik_do_delete.txt jest nadal usuwany. (nawet z flagą / f)
bvdb 27.07.16
18

Za pomocą programu PowerShell:

Get-Content c:\path\to\list.txt | Remove-Item
Siim K.
źródło
1
Wow, to o wiele bardziej czytelne niż partia.
TheLQ
Dla przyszłych czytelników ... Musiałem zmienić operatora potoku na a, >aby to zadziałało. Tj Get-Content c:\path\to\list.txt > Remove-Item... miałem w sobie pełne ścieżki UNC list.txt. Mam nadzieję że to pomoże.
NateJ
@NateJ Próbowałem użyć >i właśnie utworzył dla mnie plik, zamiast usuwania rzeczy.
Brian J
@BrianJ hmm, muszę sprawdzić, co zrobiłem .. dobry połów.
NateJ
1

Wyobrażam sobie, że można to zrobić za pomocą PowerShell.

Znając Perla , zwykle używam go do tego rodzaju rzeczy

perl -l -n -e "unlink" filenames.txt
RedGrittyBrick
źródło
1

Pierwsza metoda działa po kilku zmianach:

  1. otwórz Notatnik
  2. skopiuj wszystkie nazwy plików z rozszerzeniem, które należy usunąć po dodaniu delna początku jak

    del File1.bin
    del File20.bin
    del File21.bin
    
  3. zapisz plik jak xyz.batw tym samym folderze

  4. uruchom plik
Hassan
źródło
2
... plik tekstowy w pytaniu zawiera około 200 nazw plików. Po co dodawać delręcznie, tak jak proponujesz, skoro rozwiązania zostały już opublikowane, aby zautomatyzować? Nawiasem mówiąc: każdy rozsądny edytor miałby pewne wsparcie w wyszukiwaniu i zastępowaniu, w tym zakończeniach linii (lub linii rozpoczynających się, przy użyciu wyrażeń regularnych), makrach, lub w trybie edycji bloku lub kolumny (często inicjowany przez przytrzymanie Option lub Alt, a następnie wybranie blok, po którym można po prostu wpisać wiele wierszy jednocześnie).
Arjan