gpt4 book ai didi

if-statement - DOS 批处理文件中可以有 IF block 吗?

转载 作者:行者123 更新时间:2023-12-03 05:00:56 25 4
gpt4 key购买 nike

在 DOS 批处理文件中,我们只能有 1 行 if 语句主体?我想我在某个地方发现我可以使用 () 作为 if block ,就像在类似 C 的编程语言中使用的 {} 一样,但它不会执行以下语句:我试试这个。也没有错误消息。这是我的代码:

if %GPMANAGER_FOUND%==true(echo GP Manager is up
goto Continue7
)
echo GP Manager is down
:Continue7

奇怪的是,当我运行批处理文件时,“GP Manager is up”和“GP Manager is down”都没有打印出来。

最佳答案

您确实可以在条件语句之后创建一个要执行的语句 block 。但你的语法错误。括号的使用方式必须与所示完全相同:

if <statement> (
do something
) else (
do something else
)

但是,我不认为 else-if 语句有任何内置语法。不幸的是,您需要创建嵌套的 if 语句 block 来处理该问题。


其次,那个 %GPMANAGER_FOUND% == true 测试对我来说看起来非常可疑。我不知道环境变量设置为什么,也不知道您如何设置它,但我非常怀疑您所显示的代码是否会产生您正在寻找的结果。


以下示例代码对我来说效果很好:

@echo off

if ERRORLEVEL == 0 (
echo GP Manager is up
goto Continue7
)
echo GP Manager is down
:Continue7

请注意有关我的示例代码的一些具体细节:

  • 条件语句末尾和左括号之间添加的空格。
  • 我设置 @echo off 以避免在执行时看到打印到控制台的所有语句,而只看到那些专门开始的语句的输出与回声
  • 我使用内置的 ERRORLEVEL 变量只是为了进行测试。了解更多 here

关于if-statement - DOS 批处理文件中可以有 IF block 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4983508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com