2015-10-15 26 views
0

下面的代码:为什么在第一次运行时忽略了一个IF内部的SET?

@IF [1]==[1] (
    @SET test="This is a test" 
    echo --%test%-- 
) 

运行时的两倍,输出如下:

---- 
--"This is a test"-- 

为什么这第一个没有在变量什么价值?

+1

您的问题是变量扩展。也许[这](http://stackoverflow.com/a/30177832/2861476)可以帮助 –

+0

你是对的。我无法搜索这一个,抱歉重复。 – Nashenas

回答

1

()实际上是一个续行,所以在执行set命令前,整个if“行”被解析(和变量替换)。您需要使用enabledelayedexpansion

@setlocal enabledelayedexpansion 
@if [1]==[1] (
    @set test="This is a test" 
    echo --!test!-- 
) 
相关问题