jenkins执行bat失败_关于批处理文件:即使在BAT脚本中成功执行了ROBOCOPY命令,JENKINS作业也会失败...
我正在通過詹金斯執行Windows蝙蝠腳本。 批處理文件正在提供所需的輸出,但是構建失敗。我的批處理文件是..
cd /d D:\\Bank\\Member\\ID
if %errorlevel% neq 0 exit /b %errorlevel%
mkdir OTP
if %errorlevel% neq 0 exit /b %errorlevel%
robocopy C:\Corporate D:\\Bank\\Member\\ID\ /E /XF ?*.bat
if %errorlevel% neq 1 exit /b %errorlevel%
cd /d D:\\Bank\\Staff\\ID
成功復制文件后,機器人將給出退出代碼1。
但是,牛仔褲無法正常工作并出現以下錯誤:
Build step 'Execute Windows batch command' marked build as failure
Finished: FAILURE
如果robocopy退出代碼1,我希望構建成功。
我最好的建議是使用jenkins-pipeline,try / catch塊,并盡可能少地使用bat命令(或者根本不使用)。
但考慮到您的情況,也有一個簡單的解決方案:只需將字段" ERRORLEVEL以將構建不穩定設置為"設置為1(或其他合適的數字)。如果單擊"執行Windows批處理命令"塊下的"高級"按鈕,則會顯示該字段:
此方法會將您的構建檢查為"不穩定",但將繼續執行。
我不想讓構建失敗。詹金斯成功執行了bat文件,但最后將構建標記為失敗... @ n01d
它將在退出代碼1上將構建標記為"不穩定",而不是"失敗"。
請按以下方式使用以避免:
bat"robocopy /s source dest & EXIT /B 0"
即使robocopy返回非零錯誤級別,以上內容仍將繼續jenkins構建。即使成功復制后,Robocopy也不會由于各種原因返回0,因為它比較了兩個文件夾。請查詢返回碼以了解更多詳細信息
如此處所述,要檢查的第一個條件是用于運行Jenkins的帳戶。
鍵入services.msc以打開Windows服務并查找Jenkins服務。
而不是"本地服務帳戶",請使用您自己的帳戶:這將避免任何正確的問題。
但是:其他標準是顯示錯誤代碼。
如此處所述:
All exit codes up to '3' are fine.
因此,在robocopy之后,您可以添加:
@echo robocopy exit code: %ERRORLEVEL%
@if %ERRORLEVEL% GTR 3 ( echo robocopy ERROR )
@if %ERRORLEVEL% GTR 3 ( exit %ERRORLEVEL% )
@set ERRORLEVEL=0
REM at the end:
exit /b 0
即使robocopy的原始錯誤級別為1,這也可以確保Jenkins不會使批處理步驟失敗。
我已經嘗試過了,但是無法正常工作。我收到與問題... @ VonC相同的錯誤消息
@ rohit.dagur您是否嘗試檢查錯誤級別并將其設置為0?
是的...我確實檢查了它并設置了它,但是我的結果卻是一樣.. @ VonC
@ rohit.dagur您可以在腳本的結尾添加exit b 0嗎?
總結
以上是生活随笔為你收集整理的jenkins执行bat失败_关于批处理文件:即使在BAT脚本中成功执行了ROBOCOPY命令,JENKINS作业也会失败...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring boot 使用视图mode
- 下一篇: 代码整洁之道 python_代码整洁之道