当前位置: 首页 > 面试题库 >

如何使jenkins在失败的Windows Batch命令中失败?

龚承嗣
2023-03-14
问题内容

我在jenkins中使用了一些Windows批处理命令,其中每个命令都可能失败。为了使詹金斯工作在每个步骤上失败,这些批处理命令如下所示:

net use m: \\%IP_ADDRESS%\Whatever %PASSWORD% /user:%USERNAME%
if ERRORLEVEL 1 exit 1
mkdir m:\Install
if ERRORLEVEL 1 exit 1
copy /b %LOCAL_TEMP%\%INSTALLER_EXE% m:\Install\%INSTALLER_EXE% 
if ERRORLEVEL 1 exit 1
net use m: /D
if ERRORLEVEL 1 exit 1

换句话说:我似乎要检查每个批处理命令是否失败,然后在必要时以错误代码1退出。有没有更有意义/更方便/更好的方法来实现这一目标?

如果我不检查每个步骤并退出,jenkins将执行以下批处理命令。


问题答案:

可悲的是,您不能激活-ein
bash之类的标志,该标志会在任何不为0的返回码上退出。但是,您可以使用逻辑or跳转到退出标签,如下所示:

例如,创建此.cmd文件:

@echo off

echo Starting very complicated batch file...
ping -invalid-arg || goto :error
echo OH noes, this shouldn't have succeeded.
goto :EOF

:error
echo Failed with error #%errorlevel%.
exit /b %errorlevel%


 类似资料:
  • 我使用android studio preview beta 4,打开project it build时从https://github.com/drklo/Telegram获得Telegram源代码,并出现以下错误: 我使用最新的NDK android-ndk-r16-beta1-windows-x86。add-application.mk的第100行中有错误,它是: 所以我使用的add-appl

  • SonarQube版本=5.2 所以我注意到我的应用程序在声纳方面没有通过质量门,但构建仍然是绿色的。 我在谷歌上搜索了如何使sonar无法构建,并得到了一个名为“构建断路器”的插件的结果,该插件因我使用的版本而被贬低(http://docs.sonarqube.org/display/plug/build+breaker+plugin)。我找不到关于如何在这个版本中实现相同的构建中断行为的信息。

  • 我有一个命令: 快乐路径是可行的,但它看起来不像是执行过的。失败是这样的: 有办法捕获该错误吗?即使它只匹配字符串(我想顺便隐藏)

  • 在开发一个应用程序时,我遇到了以下错误。我试图将java版本从11降级到8,但这并没有帮助。

  • 有人能帮我解决这个错误吗? 我把ADS放在我的项目中,当我尝试将我的项目构建到Android时,我得到了这个错误。 但是,如果我将ADS脱机,那么错误就会消失。 命令调用失败:Gradle 构建失败。C:/Program Files/Java/jdk1.8.0_45\bin\java.exe -classpath “E:\unity 5\Editor\Data\PlaybackEngines\An

  • 当我在命令行中运行TestNG时,抛出异常: c:\test>java org.testng.testng testng.xml线程“main”java.lang.noClassDefounderror:com/beust/jcommander/parameterexception在java.lang.class.getDeclaredMethods0(本机方法)在java.lang.class.