2017-06-20 11 views
2

ポート8080を使用してプログラムを削除するために以下のコードを使用していますが、エラー| was unexpected at this time.があります。何ができますか?それが実行コマンドとしてIN()句に渡すことができる前に"この時点では予期しなかったエラーです。"

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

答えて

5

for内部条件は、バッチパーサにより解析されなければなりません。 <、>、&、|、^、または%のような特殊文字を保存するには、スクリプトでエスケープする必要があります。バッチのエスケープ文字は "^"です。

キャレットと垂直バーエスケープ

:私は.BATとして保存する場合、パーセント文字が同様にエスケープする必要があることも追加される場合があります

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

を。 "%P"の代わりに "%% P"を使用する必要があります。

+3

これは、ポスターがなぜそうするべきなのかを説明して説明するならば、はるかに良い答えでしょう。それは、この質問の尋ね者だけでなく、将来それを見る人にも役立つ教育的回答となるでしょう。 *これはなぜ必要なのかについての情報を提供していませんか? –

+0

ありがとうございます! – mikezang

+0

もっと良い答え。 :-) –

関連する問題