0

Ich habe eine Datei in c:\Program Files Verzeichnis tmp.txtWie in der Windows-Befehls-Shell zu entkommen?

Für jede Zeile in tmp.txt genannt, würde Ich mag einen Befehl auszuführen.

Ich versuche, die Eingabeaufforderung for Schleife zu verwenden, aber es ist nicht in der Lage, die tmp.txt zu finden. Beachten Sie, dass ich diesen Befehl aus dem Verzeichnis c:\Program Files ausführen muss.

Hier ist, wie ich versuche:

C:\>for /F %i in ("c:\Program Files\tmp.txt") do echo "%i" 

der Ausgang ist:

C:\>echo "c:\Program" 
"c:\Program" 

was bedeutet, dass for"c:\Program" als Parameter erwägt und es do

vorbei Wenn ich setzen Datei in c:\, und führen Sie for Schleife als

C:\>for /F %i in (c:\tmp.txt) do echo "%i" 

es funktioniert gut

Also meine Frage ist-wie kann ich vollständigen Pfad zu for Schleife übergeben, so dass for es als Datei betrachten

Antwort

2

Verwenden Sie die usebackq Option for /f:

for /f "usebackq" %i in (...) 

Dies ändert die Semantik der verschiedenen Anführungszeichen, wie auch die Hilfe sagt:

usebackq  - specifies that the new semantics are in force, 
        where a back quoted string is executed as a 
        command and a single quoted string is a 
        literal string command and allows the use of 
        double quotes to quote file names in 
        file-set. 
+0

funktioniert wie ein Charme! danken. – user837208