Шаг сборки командной строки TeamCity 7.0.1 и ОШИБКА

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

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

robocopy "%teamcity.build.workingDir%\Code" "\\target\d$\Web\Target 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 был неожиданным в это время.

Проверка ERRORLEVEL по какой-то причине не работает?

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

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

ура

2 ответа

Решение

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

Пытаться IF %%ERRORLEVEL%% GEQ ...

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

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

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%%
)
Другие вопросы по тегам