错误" |在这个时候出人意料。"

时间:2017-06-20 00:22:23

标签: batch-file for-loop findstr netstat taskkill

我使用以下代码使用端口8080删除程序,但我收到错误| was unexpected at this time.,我该怎么办?

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

1 个答案:

答案 0 :(得分:5)

批处理解析器必须解析for内的条件,然后才能将其作为可执行命令传递给IN()子句。要保留特殊字符,例如<,>,&,|,^或%,您必须在脚本中转义它们。批处理中的转义字符是" ^"。

使用插入符号退出垂直条:

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

我可能还会补充一点,当保存为.bat时,百分比字符也必须进行转义。而不是"%P",你需要使用" %% P"。