12

ビルド構成に、ランナータイプが「コマンドライン」であるビルドステップがあり、カスタムスクリプトを実行しています。

スクリプトは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はビルドパラメーターを渡すことを期待しています。

これは「パラメータで実行可能ファイル」としてのみ機能しますか?

4

2 に答える 2

28

ニール、パーセント記号をエスケープしてみてください。

試すIF %%ERRORLEVEL%% GEQ ...

于 2013-02-07T16:34:29.933 に答える
0

私はちょうどこの問題に遭遇しました、そして@ジョンの答えに感謝します。

これが私が思いついたものです:

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%%
)
于 2015-04-10T19:19:49.300 に答える