2016-12-18 7 views
-1

Ich frage mich nur, warum ich das "| war zu dieser Zeit unerwartet." Meldung, wenn ich folgendes ausgeführt:Befehlszeile "| war zu dieser Zeit unerwartet." Nachricht

for /f "tokens=2 delims==; " %%a in (' (wmic process call create "%exec%","%workdir%") ^| find "test" ') do set test=%%a 

aber kein Fehler, wenn ich laufen die folgenden:

(wmic process call create "%exec%","%workdir%") ^| find "test" 

Dank!

Antwort

0

Es gibt mehr Zeichen escaped in geparste Befehl sein:

     (wmic process call create "%exec%","%workdir%") | find "test" 
rem need to escape: ↑         ↑   ↑ ↑ 

Nächster Befehl sollte funktionieren - wenn auch kein'test' Wort ist in wmic Ausgang zu finden, wahrscheinlich:

for /f "tokens=2 delims==; " %%a in (' ^(wmic process call create "%exec%"^,"%workdir%"^) ^| find "test" ') do set test=%%a 
rem properly escaped:     ↑         ↑   ↑ ↑ 

Getestet mit

(wmic process call create "cmd.exe","%temp%") | find "ProcessId" 

Dann, nächste Befehle setzt Prozess ID von erstellt cmd zu Variable test:

for /f "tokens=2 delims==; " %%a in (' ^(wmic process call create "cmd.exe"^,"%temp%"^) ^| find "ProcessId" ') do set test=%%a 
+0

Danke, mein Herr! Es funktioniert jetzt. –

Verwandte Themen