2017-06-20 3 views
2

Ich benutze Code wie unten, um Programm mit Port 8080 zu löschen, aber ich habe Fehler | was unexpected at this time., was kann ich tun?Fehler "| war zu dieser Zeit unerwartet."

FOR /F "tokens=5 delims= " %P IN ('netstat -a -n -o | findstr :8080') DO TaskKill.exe /PID %P 

Antwort

5

Der Zustand im Innern der for muss vom Batch-Parser syntaktisch analysiert werden, bevor er es an die in() Klausel als ausführbaren Befehl passieren kann. Um Sonderzeichen wie <,>, &, |,^oder% zu erhalten, müssen Sie sie im Skript zurückhalten. Das Escape-Zeichen in Batch ist "^".

die vertikale Leiste mit einem caret entkommen:

FOR /F "tokens=5 delims= " %P IN ('netstat -a -n -o ^| findstr :8080') DO TaskKill.exe /PID %P 

Ich könnte auch hinzufügen, dass, wenn sie als .bat gespeichert sowie die Prozentzeichen zu entkommen. Anstelle von "% P" müssten Sie "%% P" verwenden.

+3

Dies wäre eine viel bessere Antwort, wenn Sie [bearbeiten] und erklären sollten * warum * das Plakat sollte dies tun. Es wäre eine lehrreiche Antwort, von der nicht nur die Fragesteller dieser Frage profitieren würden, sondern auch andere, die sie in Zukunft sehen. * Informieren Sie * nicht darüber, warum dies notwendig ist. –

+0

Vielen Dank! – mikezang

+0

Viel bessere Antwort. :-) –

Verwandte Themen