批处理文件中的括号
Parenthesis in Batch file
set var= 10(device)
if 1==1 (
echo %var% present
)
由于 "device" 后的括号,此批处理文件出错。
如何解决?
您需要 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!
set var= 10(device)
if 1==1 (
echo %var% present
)
由于 "device" 后的括号,此批处理文件出错。
如何解决?
您需要 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!