2017-06-20 188 views
2

我使用的代碼如下使用端口8080刪除程序,但我得到錯誤| was unexpected at this time.,我該怎麼辦?錯誤「|在這個時候是意外的。」

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

回答

5

for內的條件必須由批量解析器解析,纔可以將它傳遞給IN()子句爲可執行命令。要保留特殊字符,如<,>,&,|,^或%,則必須在腳本中將其轉義。批處理中的轉義字符是「^」。

逃生用插入符豎線:

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

我也想補充一點,當保存爲.bat和百分比字符必須進行轉義爲好。而不是「%P」,你需要使用「%% P」。

+3

如果您要編輯並解釋*爲什麼海報應該這樣做,這將是一個更好的答案。這將是一個教育的答案,不僅有益於這個問題的提問者,而且有益於未來的其他人。 *這個*沒有提供關於爲什麼有必要這樣做的任何信息。 –

+0

非常感謝! – mikezang

+0

更好的答案。 :-) –

相關問題