[英]Is it possible to run two batch files from Jenkins?
我有以下情況。 在詹金斯,我有一個正在不同環境運行的構建。 這就是為什么我使用帶有兩個選項PROD/TEST
參數進行構建的原因。 該構建正在調用帶有參數PROD
或TEST
shell腳本。
這是jenkins正在調用的腳本A
示例:
if %1%==TEST(
start F:\test.bat
)
腳本A
本身正在調用另一個腳本B
這是腳本B
示例:
copy test.xt copyFolder\
問題在於,詹金斯只調用第一個腳本A
,而第二個腳本B
不運行。
為什么會這樣?
您將需要call
該批處理文件,而不是start
它,因為它會創建一個新的cmd.exe
實例,因此它可以異步運行被調用的批處理文件(如jeb 在此處所述 ):
if "%~1" == "TEST" (
call F:\test.bat
)
在這里,我要注意一些事項:
%1%
將被解釋為批處理文件的第一個參數 (如果有)和一個額外的百分號( %
) 。 您可能希望在這里使用第一個參數,因此我已將%1%
替換為%1
。 如果這不是您想要的,則將其替換為變量名,但請記住,它不應以數字開頭! %1
被%~1
替換並引用是因為:
%~1
指沒有任何引號的第一個參數。 if
語句中引用值始終是最佳做法,但如果使用引號,則比較將失敗。 ==
之間添加了一個空格,以使代碼更清晰。 對於單行代碼,請參閱aschipfl的注釋 ,它是:
if /I "%~1"=="TEST" (call "F:\test.bat")
看到call /?
if /?
有關這些命令如何工作的更多信息,請參見cmd。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.