2012-04-19 142 views
2

我是批處理文件的初學者。所以我正在製作一個基本的批處理文件,當我測試它時,它說The syntax of the command is incorrect.但我確信它是正確的。我知道它是在我編碼的IF部分,因爲我放了幾個等待腳本(使用VBS)。我還沒有使用REM,所以我不知道問題是什麼。我寫的是這樣的。如果聲明不起作用。批處理文件

@echo off 

b: 
set a=1 

IF %a%==1 goto :a 

:a 

echo Test 

pause 

goto :b 

我也有很多相當在編碼其他IF %variable%==number語句,他們都做工精細。到底是怎麼回事?

回答

0
IF %a%==1 goto :a 

應該

IF %a%==1 goto a 

如需進一步的幫助,這裏就是我找到了解決辦法:http://www.computerhope.com/batch.htm 它擁有你需要的所有信息。

+3

這是不正確的,'goto'與包含冒號的標籤工作得很好。 – paxdiablo 2012-04-19 03:22:30

+0

謝謝!你給我看的鏈接是幫助很多! – 2012-04-19 06:29:15

1

一開始,你的標籤b對錯誤的一邊結腸,把它變成試圖爲默認驅動設置成你的第二個軟盤:-)

其次的命令,雖然不是絕對必要,我喜歡的標籤來對自己行:

@echo off 
:b 
    set a=1 
    IF %a%==1 goto :a 
:a 
    echo Test 
    pause 
    goto :b 

運行,這導致:

C:\Users\Pax\Documents> testprog 
Test 
Press any key to continue . . . <ENTER> 
Test 
Press any key to continue . . . <ENTER> 
Test 
Press any key to continue . . . <ENTER> 
Test 
Press any key to continue . . . <CTRL-C> 
Terminate batch job (Y/N)? y 

C:\Users\Pax\Documents> _ 
+0

看起來像是一個標籤問題。雖然我確實有另一個我有理論的問題。如果你使用沒有設置任何變量的IF語句,它會不起作用嗎?再次感謝。 – 2012-04-19 06:30:35

+0

解決了這個問題,我的理論是正確的。對不起,麻煩了。 :) – 2012-04-19 06:32:21

+0

變量設置爲無效工作好嗎。你只需要嘗試'echo [%xyzz%]'來看看這個動作。如果未設置,則會得到未解釋的[%xyzzy%]。如果它設置爲1(例如),你會得到'[1]'。無論如何,你的變量_was_在給定的代碼中設置。 – paxdiablo 2012-04-19 06:41:16

0

paxdiablo表示可能沒有必要,但它可以幫助給自己的標籤,也可以有其他小事情,可能不是必要的,但可以幫助你有點組織,這將有助於你從長遠來看它的一種方式可以固定起來就像是一個例子。

@echo off 
:b 
set a=1 
IF %a%==1 goto a 
:a 
echo Test 
pause 
goto b 

另外,IF %a%==1 goto a可以更改爲IF %a% EQU 1 goto a 就像goto可以寫爲goto :agoto a。 標題可以Title title of window等加入...

快樂探索。