“)这时候出乎意料。”在 BATCH 中运行嵌套 IF

发布于 2024-12-10 20:40:00 字数 426 浏览 1 评论 0原文

不知道为什么会发生这种情况。尝试抬头...我认为看起来不错。

IF not (%5) == () (
    call %antPath% -f %buildFile% runSoapUI -DserviceName=%1 -DoperationName=%2 -DinputData=%3 -DlogID=%4 -DtestType=%5
) ELSE (
    IF not (%4) == () (
        call %antPath% -f %buildFile% runSoapUI -DserviceName=%1 -DoperationName=%2 -DinputData=%3 -DlogID=%4 -DtestType=FILE
    ) ELSE (
        call %antPath% -f %buildFile% help
    )
)

Not sure why this is happening. Tried looking up... looks fine I think.

IF not (%5) == () (
    call %antPath% -f %buildFile% runSoapUI -DserviceName=%1 -DoperationName=%2 -DinputData=%3 -DlogID=%4 -DtestType=%5
) ELSE (
    IF not (%4) == () (
        call %antPath% -f %buildFile% runSoapUI -DserviceName=%1 -DoperationName=%2 -DinputData=%3 -DlogID=%4 -DtestType=FILE
    ) ELSE (
        call %antPath% -f %buildFile% help
    )
)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤城病女 2024-12-17 20:40:00

就像 Mat 所说,在 if 语句中使用括号是一个坏主意。
更好的是使用引号,因为它们可以防止 %n 内容中的许多特殊字符(如空格、<>&|()

出现问题。如果任何变量中都有一个)

您可以通过延迟扩展来解决这个问题。

setlocal EnableDelayedExpansion
IF not "%5" == "" (
    call !antPath! -f !buildFile! runSoapUI -DserviceName=%1 -DoperationName=%2 -DinputData=%3 -DlogID=%4 -DtestType=%5
) ELSE (
    IF not "%4" == "" (
        call !antPath! -f !buildFile! runSoapUI -DserviceName=%1 -DoperationName=%2 -DinputData=%3 -DlogID=%4 -DtestType=FILE
    ) ELSE (
        call !antPath! -f !buildFile! help
    )
)

Like Mat said, it's a bad idea to use brackets in the if statements.
Better is the use of quotes, as they prevent problems with many special characters like spaces, <>&|() in the content of %n

You could also get problems with your call statements if there is in any variable a ).

You could solve this with delayed expansion.

setlocal EnableDelayedExpansion
IF not "%5" == "" (
    call !antPath! -f !buildFile! runSoapUI -DserviceName=%1 -DoperationName=%2 -DinputData=%3 -DlogID=%4 -DtestType=%5
) ELSE (
    IF not "%4" == "" (
        call !antPath! -f !buildFile! runSoapUI -DserviceName=%1 -DoperationName=%2 -DinputData=%3 -DlogID=%4 -DtestType=FILE
    ) ELSE (
        call !antPath! -f !buildFile! help
    )
)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文