我有一个.cmd文件(Windows XP)正在使用这样的多行IF块:
IF DEFINED SUMM (
echo %SUMM% >> %OutFile%
echo ---- >> %OutFile%
) ELSE (
echo No summary >> %OutFile%
)
如果环境变量%SUMM%包含右括号,然后是文本,则会出现问题。例如:
SET SUMM=(Hello world) Here's some more text.
然后我假设SUMM中的')'被视为IF命令块中的右括号并产生错误:
此时出乎意料。
这有什么办法吗?我怎样才能确保将)视为字符串的一部分,而不是命令块的一部分?
答案 0 :(得分:1)
除非您可以延迟SUMN的扩展,否则它将评估SUMN的内容。所以我不认为if定义的语法会允许你想要的东西。你最好的选择可能是
if not "%SUMN%"==""
...如果您知道%SUMN%不包含引号。如果可以,则将百分比更改为感叹号和setlocal enabledelayedexpansion。