首页 > 解决方案 > 批处理文件中的字符串断言/抛出异常

问题描述

通过詹金斯的 bat 文件。我有一部分代码如下所示

IF %Status% == Completed (
    Echo Process has executed successfully
)

ELSE (
    <Code to be added>
)

我的要求是,如果 Status 的值不是“Completed”,那么 bat 文件必须抛出异常或其他东西,以使 Jenkins 构建失败。在 bat 文件中是否有任何断言或抛出异常的方法?请在这件事上给予我帮助?

标签: batch-filejenkinsexceptionassertion

解决方案


批处理文件的每一行都被视为一个新命令。Else它本身不是,所以它在一个新的线路上,它被视为一个。您需要将括号与else.

此外,您需要对匹配项进行双引号,以确保消除任何可能的空格。我在语句中添加了/iswitch 以if使匹配不区分大小写。

IF /i "%Status%" == "Completed" (
    echo Process has executed successfully
) else (
    echo Failed to build
    pause
    exit /b 1
)

另一种方法是不使用 else。

IF not /i "%Status%" == "Completed" goto :error
echo Process has executed successfully
echo other success code goes here
goto :eof
:error
echo Your code has failed.
pause
goto :eof

推荐阅读