我有一个非常简单的批处理脚本:
@echo off
if %1 == a goto AA
if %1 == b goto BB
goto end
:AA
echo a
goto end
:BB
echo b
goto end
:END
echo on
如果我使用参数test.bat a
来调用它,我会得到我的预期,但如果我在没有任何参数test.bat
的情况下调用它,我会得到goto was unexpected at this time.
而且有问题的行是{{ 1}}。
为什么?
答案 0 :(得分:2)
当没有参数时,此行if %1 == a goto AA
将变为if == a goto AA
。
如果您使用if .%1 == .a goto AA
,则该行变为if . == .a goto AA
且没有参数,并且窗口不会引发if
和==
之间没有任何内容的错误
答案 1 :(得分:2)
在每次比较中将变量和值括在引号中。
if "%1" == "a" goto AA
if "%1" == "b" goto BB
goto end