gpt4 book ai didi

Windows 批处理 SET inside IF 不工作

转载 作者:可可西里 更新时间:2023-11-01 11:54:22 25 4
gpt4 key购买 nike

当我运行此脚本时(从 .bat 文件):

set var1=true
if "%var1%"=="true" (
set var2=myvalue
echo %var2%
)

我总是得到:

ECHO is on.

这意味着 var2 变量并未真正设置。谁能帮我理解为什么?

最佳答案

var2 已设置,但 echo %var2% 行中的扩展发生在 block 执行之前。
此时var2为空。

因此存在 delayedExpansion 语法,它使用 ! 而不是 % 并且它在执行时计算,而不是解析时。

请注意,为了使用 !,需要附加语句 setlocal EnableDelayedExpansion

setlocal EnableDelayedExpansion
set var1=true
if "%var1%"=="true" (
set var2=myvalue
echo !var2!
)

关于Windows 批处理 SET inside IF 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9102422/

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