2013-06-13 48 views
1

非常新,所以我很抱歉,如果這是簡單的。我在命令提示符下運行以下.bat腳本進行分配。Windows Shell腳本「在這個時候是意外的。」在命令提示符

@ECHO off 

TITLE "KnockKnock.bat - The KnockKnock joke game!" 

COLOR 0E 

CLS 

ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 

SET /p reply="Knock Knock! C:>" 

CLS 

IF NOT %reply% == "Who is there?" (
    ECHO "Sorry, but you are not playing the game right!" 
    GOTO :EOF) 

ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 

SET /p reply="Orange!   C:>" 

CLS 

IF NOT %reply% == "Orange who?" (
    ECHO "Sorry, but you are not playing the game right!" 
    GOTO :EOF) 

ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 

ECHO "Orange you glad you've written your first Windows shell script?" 

ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO. 

腳本會提示「Knock Knock!」因爲它應該,但在迴應「誰在那裏?」 (不含引號),我會收到錯誤信息「此時出乎意料」。我究竟做錯了什麼?

同樣,我意識到這可能是非常基本的,所以我感謝任何幫助。

謝謝。

回答

2

的問題是,當%reply%變量與它的值取代,CMD試圖解釋這樣的:超過此相反

IF NOT Who is there? == "Who is there?" (

IF NOT "Who is there?" == "Who is there?" (

爲了修正它,周圍添加%reply%引號,像這樣:

IF NOT "%reply%" == "Who is there?" (
    ECHO "Sorry, but you are not playing the game right!" 
    GOTO :EOF) 
+0

@ user2480659你需要測試「誰在那裏?」和「誰在那裏?」以迎合壞英語。使用'IF/i NOT ...'語法使其不區分大小寫。 – foxidrive

+0

非常感謝Blorgbeard。這解決了我的問題。 – Jerry

相關問題