2016-08-19 2 views
0

Я пытаюсь убить процесс на 6373 порт (как это было предложено here) с помощью следующего кода:кода 255 из-за неожиданные командами

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 

если я пытаюсь запустить его в качестве сборки шага на TeamCityWindows агента

Я попробовал tokens=4 вместо tokens=5, а также %%P вместо %P, но получил тот же результат. Может ли кто-нибудь указать на мою ошибку?

+0

Вы запустите скрипт только в командной строке на машине сборки агента? – FloatingKiwi

+0

есть. Я запускаю его просто из 'cmd' – Andersson

ответ

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% 
Смежные вопросы