TeamCity 7.0.1 шаг построения командной строки и уровень ошибок

у меня есть шаг сборки в моей конфигурации сборки, это бегун типа "Командная строка", выполняющий пользовательский скрипт.

скрипт выполняет Robocopy:

robocopy "%teamcity.build.workingDir%Code" "targetd$WebTarget Sites" /E /NP /LOG:robocopy.log

if ERRORLEVEL GEQ 4 (
"D:blat.exe" "robocopy.log" -to me@me.com -f me@me.com -subject "Error during robocopy on TEAMCITY" -server mail.me.com
)

exit /B 0

команда Robocopy работает нормально, но я продолжаю получать электронное письмо и в журнале сборки я продолжаю видеть:

GEQ был неожиданным в это время.

проверка уровня ошибок по какой-то причине не работает?

пробовал IF %ERRORLEVEL% GEQ но это нарушает мою сборку имеет TeamCity ожидает, что я передам параметр сборки.

работает ли это только как "исполняемый файл с параметрами"?

Ура

2 ответов


Нил, ты можешь попробовать экранирование знака процента.

попробовать IF %%ERRORLEVEL%% GEQ ...


Я только что столкнулся с этой проблемой и ценю ответ @John.

вот что я придумал:

robocopy [from] [to] /MIR

REM http://ss64.com/nt/robocopy-exit.html
IF %%ERRORLEVEL%% EQU 0 (
   ECHO No errors occurred, and no copying was done; The source and destination directory trees are completely synchronized.
  EXIT 0
)
IF %%ERRORLEVEL%% EQU 1 (
  ECHO One or more files were copied successfully, new files have arrived.
  EXIT 0
)
 IF %%ERRORLEVEL%% EQU 2 (
  ECHO Some Extra files or directories were detected. No files were copied.
  EXIT 0
 ) 
IF %%ERRORLEVEL%% GEQ 3 (
  ECHO Robocopy Exit Codes: http://ss64.com/nt/robocopy-exit.html  
  EXIT %%ERRORLEVEL%%
)