以下批处理脚本失败的原因“命令的语法不正确”。如果我没有提供参数,则在Windows 7上出现错误:
IF NOT [%1]==[] (
echo "blablabla" > %1
) ELSE (
echo "please provide argument"
)
但这段代码没有问题:
IF NOT [%1]==[] (
echo "blablabla"
) ELSE (
echo "printing not existing argument: %1"
)
提前致谢
答案 0 :(得分:2)
用双引号将文件名括起来会强制if/else
块来正确解析和读取表达式。
例如
IF NOT [%1]==[] (
echo "blablabla" > "%1"
) ELSE (
echo "please provide argument"
)
答案 1 :(得分:0)
问题是整个if
/ else
块被一次读取和解析。因此,如果%1
为空,则仍会解析重定向>
并将其评估为无效。
你可以解决这个问题:
IF NOT [%1]==[] (
goto :Redirect
) ELSE (
echo "please provide argument"
)
goto :Continue
:Redirect
echo "blablabla" > %1
:Continue