错误“| 此时出乎意料。”

Error "| was unexpected at this time."

我正在使用下面的代码删除使用端口 8080 的程序,但出现错误 | was unexpected at this time.,我该怎么办?

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

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

用插入符号转义竖线:

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

我可能还要补充一点,当保存为 .bat 时,百分号字符也必须转义。您需要使用“%%P”而不是“%P”。