由于意外命令导致代码255

时间:2016-08-19 14:24:15

标签: windows cmd teamcity

我尝试使用以下代码终止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,但结果相同。有谁可以指出我的错误?

1 个答案:

答案 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%