2012-08-15 29 views
0

我有一个非常简单的批处理脚本,批处理文件时:错误调用不带参数的

@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.和违规行是if %1 == a goto AA

为什么?

回答

2

此行if %1 == a goto AA在没有参数时将变为if == a goto AA

如果使用if .%1 == .a goto AA那么该行成为if . == .a goto AA不带任何参数,和Windows不抛出有if==

2

之间没有任何的错误都括起来的变量,并在每个比较报价的价值。

if "%1" == "a" goto AA 
if "%1" == "b" goto BB 
goto end