调用没有参数的批处理文件时出错

时间:2012-08-15 20:32:03

标签: windows-7 batch-file

我有一个非常简单的批处理脚本:

@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}}。

为什么?

2 个答案:

答案 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