批处理文件中的括号

时间:2015-01-22 13:08:19

标签: batch-file if-statement

set var= 10(device)
if 1==1 (
echo %var% present
)

由于" device"。

之后的括号,此批处理文件出错

如何解决?

1 个答案:

答案 0 :(得分:4)

您需要enabledelayedexpansion并以延迟样式执行echo !var! present,以防止在回显时对括号进行评估。

@echo off
setlocal enabledelayedexpansion

set "var= 10(device)"
if 1==1 (
    echo !var! present
)

与您的问题没有直接关系,但无论如何,无论何时批量设置variable=string,我都会提出好的建议,请将var=val对括在引号中,如下所示:

set "var= 10(device)"

在批处理脚本中设置variable = string时,这通常被认为是正确的做法。此方法还允许使用其他特殊字符,例如:

set "xml=<device>10</device>"
setlocal enabledelayedexpansion
echo !xml!