2012-08-15 26 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