mik*_*ang 2 netstat for-loop batch-file taskkill findstr
我使用下面的代码使用端口8080删除程序,但我收到错误| was unexpected at this time.,我该怎么办?
FOR /F "tokens=5 delims= " %P IN ('netstat -a -n -o | findstr :8080') DO TaskKill.exe /PID %P
Run Code Online (Sandbox Code Playgroud)
for必须由批处理解析器解析其中的条件,然后才能将其作为可执行命令传递给IN()子句.要保留<,>,&,|,^或%等特殊字符,必须在脚本中转义它们.Batch中的转义字符为"^".
用插入符号逃离垂直条:
FOR /F "tokens=5 delims= " %P IN ('netstat -a -n -o ^| findstr :8080') DO TaskKill.exe /PID %P
Run Code Online (Sandbox Code Playgroud)
我还可以补充说,当保存为.bat时,百分比字符也必须进行转义.而不是"%P",您需要使用"%% P".