0
下面的代码:为什么在第一次运行时忽略了一个IF内部的SET?
@IF [1]==[1] (
@SET test="This is a test"
echo --%test%--
)
运行时的两倍,输出如下:
----
--"This is a test"--
为什么这第一个没有在变量什么价值?
下面的代码:为什么在第一次运行时忽略了一个IF内部的SET?
@IF [1]==[1] (
@SET test="This is a test"
echo --%test%--
)
运行时的两倍,输出如下:
----
--"This is a test"--
为什么这第一个没有在变量什么价值?
()
实际上是一个续行,所以在执行set
命令前,整个if
“行”被解析(和变量替换)。您需要使用enabledelayedexpansion
:
@setlocal enabledelayedexpansion
@if [1]==[1] (
@set test="This is a test"
echo --!test!--
)
您的问题是变量扩展。也许[这](http://stackoverflow.com/a/30177832/2861476)可以帮助 –
你是对的。我无法搜索这一个,抱歉重复。 – Nashenas