2016-06-29 7 views
0

ich eine Textdatei, die Dateinamen (Bilder) in jeder Zeile enthält:Windows-Cmd: Löschen von Dateien aus einem Ordner

Pic1.png 
Pic2.jpg 
Pic3.png 
Pic4.gif 

Gibt es einen Batch-Befehl all diese Dateinamen aus der TXT-Datei zu holen und lösche sie?

Ich versuchte dies: for /f "delims=" %%f in (files.txt) do del "%%f" aber ich habe Fehler: %% f

+2

Sie benötigen '%% f' in einer Batch-Datei, aber'% f' in der Befehlszeile. Wenn Sie '%% f' in der Befehlszeile verwenden, erhalten Sie den Fehler, den Sie erhalten. – TessellatingHeckler

+1

Sie haben Ihre Frage [Tag: Batch-Datei] markiert, so dass Sie Antworten dafür erhalten; Wenn Sie eine Antwort in Bezug auf 'cmd' (Eingabeaufforderung) auch wollen, taggen Sie es [tag: cmd] zusätzlich ... – aschipfl

+0

Sie haben Recht, meine schlechte – user708683

Antwort

1

Sie können mit einer Batch-Datei so etwas tun unerwartete

Dank war:

@echo off 
for /f "delims=" %%a in ('Type files.txt') Do (Del /F /Q "%%a") 
pause 

auf der Kommandozeile Sie sollten folgendes tun:

for /f "delims=" %a in ('Type files.txt') Do (Del /F /Q "%a") 
+0

Ich habe den gleichen Fehler: %% a war unerwartet – user708683

+0

@ user708683 Überprüfen meine letzte Bearbeitung! – Hackoo

1

Die Option /F von for bedeutet, dass das Argument file.txt gelesen wird und die a-Variable auf jedes Token der Datei wirkt. Es muss kein Trennzeichen angegeben werden, wenn ein Element pro Zeile oder durch Leerzeichen getrennt ist.

in einer BAT-Datei Sie das ‚%‘ zu verdoppeln haben verkohlt

for /F %%a in (file.txt) do del /f /q %%a 

von der Kommandozeile (wie in der obigen Antwort angegeben), entfernen Sie einfach das extra ‚%‘ oder du wirst %%a was unexpected haben Fehler, den Sie gemeldet haben.

for /F %a in (file.txt) do del /f /q %a 
+0

Ich habe den gleichen Fehler: %% a war unerwartet – user708683

+0

Bitte bearbeiten Sie mit mehr Informationen. Code-only und "try this" Antworten werden abgeraten, da sie keine durchsuchbaren Inhalte enthalten und nicht erklären, warum jemand "das versuchen sollte". Wir bemühen uns, eine Ressource für Wissen zu sein. – abarisone

0

während gelesen -r Datei; do rm - "$ Datei"; getan < a.txt

wo a.txt Dateiname ist, wo die ganze Datei gelöscht werden soll,

aufgeführt

suppose a.txt enthält, ist

A.java

B.java

C.java

dann, wenn Sie unter Befehl ausführen dann alle in a.txt Datei aufgelisteten Dateien werden gelöscht

während read -r-Datei; do rm - "$ Datei"; done < a.txt

+0

Windows Batch, nicht bash.Dies wird geben "while" wird nicht als interne oder externe Befehl erkannt. – TessellatingHeckler

+0

es wird nur auf Linux-System arbeiten – sanjeevjha

+0

das ist nicht der Punkt der Frage –