set var= 10(device)
if 1==1 (
echo %var% present
)
由于" device"。
之后的括号,此批处理文件出错如何解决?
答案 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!