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)

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.


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"

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

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

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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.