Batchfile:声明和使用布尔变量的最佳方法是什么?

时间:2016-02-22 02:29:28

标签: windows batch-file cmd windows-10 command-prompt

在批处理文件中声明和使用布尔变量的最佳方法是什么?这就是我现在正在做的事情:

set "condition=true"

:: Some code that may change the condition

if %condition% == true (
    :: Some work
)

是否有更好的,更正规的"这样做的方法? (例如,在Bash中,您可以if $condition true,因为false和{{1}}是他们自己的命令。)

3 个答案:

答案 0 :(得分:14)

set "condition=y"

y

其中if defined可以是任何字符串或数字。

这允许if not definedenabledelayedexpansion两者都可以在块语句(带括号的语句序列)中使用,以查询标志的运行时状态,而无需set "condition=" if defined condition (echo true) else (echo false) set "condition=y" if defined condition (echo true) else (echo false)

false

第一个将回显true,第二个JSON.stringify(object);

答案 1 :(得分:7)

我暂时坚持原来的答案:

set "condition=true"

:: Some code...

if "%condition%" == "true" (
    %= Do something... =%
)

如果有人知道更好的方法,请回答这个问题,我很乐意接受你的回答。

答案 2 :(得分:0)

我想另一种选择是使用“ 1 == 1”作为真值。

因此重复该示例:

set condition=1==1

:: some code

if %condition% (
    %= Do something... =%
)

当然可以设置一些变量来保存truefalse的值:

set true=1==1
set false=1==0

set condition=%true%

:: some code

if %condition% (
    %= Do something... =%
)