Batch-Datei, um zu überprüfen, ob die Liste der Dateien vorhanden sind. Funktioniert nicht mit Leerzeichen
Habe ich eine Liste von Dateien in eine text Datei und ich möchte einen Bericht generieren, der alle Dateien, die nicht existieren. Ich habe versucht, erstellen Sie eine batch-Datei mit dem folgenden code allerdings funktioniert es nicht mit allen Dateien, die ein Leerzeichen im Pfad:
FOR /F %%f IN (filelist.txt) DO (IF EXIST %%f (ECHO %%f exists) ELSE (ECHO %%f doesn't exist >> C:\doesntexist.txt ))
In meiner output-Datei bekomme ich eine Fehlermeldung wie "C:\Documents existiert nicht", die zeigen, dass es nicht Parsen der vollen Datei Namen.
Wie kann ich dieses Problem beheben, so dass ich überprüfen kann alle Dateien, auch mit Leerzeichen im Pfad?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wo immer die Möglichkeit besteht, dass eine Zeichenfolge kann ein Trennzeichen wie ein Leerzeichen, müssen Sie
"enclose that string in quotes"
for /f
tokenises die Daten, die es erhält standardmäßig auf Separatoren, so dass die erste nominiert token zugeordnet ist, auf die metavariable (%%f
in Ihrem Fall), die neben%%g
und so weiter.Können Sie Steuern, wie viele Zeichen und das Trennzeichen(s) und andere parsing-Eigenschaften durch die Verwendung von Befehls-Modifikatoren (aus der Eingabeaufforderung sehen
for /?
)In Ihrem Fall, Sie wollen nur das eine token ohne Trennzeichen (Standard ist 1 token und Trennzeichen=Separatoren) so
Gibt es einen kleinen zusätzlichen Komplikation, wenn
filelist.txt
Leerzeichen enthält. In diesem Fall würden Sie brauchen,Gründen auch gegessen "erklärte," in der Dokumentation
for /?
oben genannten.Müssen Sie verwenden Zitate:
"delims="
zu Lesen Sie auch volle Zeilen aus der Datei!