Batch file 可以从Jenkins运行两个批处理文件吗?
我有以下情况。在詹金斯,我有一个在不同环境下运行的构建。这就是为什么我使用带有两个选项的参数构建Batch file 可以从Jenkins运行两个批处理文件吗?,batch-file,jenkins,Batch File,Jenkins,我有以下情况。在詹金斯,我有一个在不同环境下运行的构建。这就是为什么我使用带有两个选项的参数构建PROD/TEST。生成正在使用参数PROD或TEST调用shell脚本 下面是jenkins调用的脚本A的示例: if %1%==TEST( start F:\test.bat ) 脚本A本身正在调用另一个脚本-B 下面是脚本B的示例: copy test.xt copyFolder\ 问题是Jenkins只调用第一个脚本-A,而第二个脚本B没有运行 为什么会发生这种情况?您需要创建批处理文件
PROD/TEST
。生成正在使用参数PROD
或TEST
调用shell脚本
下面是jenkins调用的脚本A
的示例:
if %1%==TEST(
start F:\test.bat
)
脚本A
本身正在调用另一个脚本-B
下面是脚本B
的示例:
copy test.xt copyFolder\
问题是Jenkins只调用第一个脚本-A
,而第二个脚本B
没有运行
为什么会发生这种情况?您需要创建批处理文件,而不是启动它,因为它创建了一个新的cmd.exe
实例,因此它可以异步运行调用的批处理文件(如jeb所述):
如果“%~1”=“测试”(
调用F:\test.bat
)
在这里,我想指出一些事情:
将被解释为批处理文件的第一个参数(如果有)和一个额外的百分号(%1%
)。您可能需要这里的第一个参数,因此我将%
替换为%1%
。如果它不是您想要的,那么用您的变量名替换它,但是记住它不应该以数字开头李>%1
被%1
替换并引用,因为:%1
表示没有任何引号的第一个参数%~1
- 在
语句中引用值始终是最佳做法,但如果有引号,则比较将失败if
- 在
之间添加了一个空格,以使代码更清晰==
if/I“%~1”=“TEST”(调用“F:\TEST.bat”)
有关这些命令如何工作的详细信息,请参见cmd中的
call/?
和if/?
。if/I“%~1”==“TEST”(call“F:\TEST.bat”)
?它可以像这样工作