我尝试使用以下代码终止6373
端口上的进程(如建议的here):
FOR /F "tokens=5 delims= " %P IN ('netstat -a -n -o ^| findstr :6373') DO TaskKill.exe /F /PID %P
如果我在本地计算机上从cmd
运行它,这是有效的。
但得到了
6373') was unexpected at this time.
Process exited with code 255
如果我尝试在TeamCity
Windows
座席
我尝试tokens=4
代替tokens=5
以及%%P
代替%P
,但结果相同。有谁可以指出我的错误?
答案 0 :(得分:1)
可以重写代码以消除未知数量的令牌的不确定性。
来自控制台窗口的单行:
@Set "PID=" & @(For /F "Tokens=*" %a In ('NetStat -a -n -o^|Find ":6373 "') Do @For %b In (%a) Do @Set PID=%b) & @If Defined PID TaskKill /F /PID %PID%
批处理文件版本:
@Echo Off
SetLocal
Set "PID="
For /F "Tokens=*" %%a In ('NetStat -a -n -o^|Find ":6373 "') Do (
For %%b In (%%a) Do Set PID=%%b
)
If Defined PID TaskKill /F /PID %PID%