2013-06-13 3 views
1

매우 새로운데, 그래서 이것이 단순한 것이라면 사과드립니다. 명령 프롬프트에서 다음과 같은 .bat 스크립트를 실행하고 있습니다.Windows 셸 스크립트 "이 예기치 않은 않았습니다." in Command Prompt

@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. 

스크립트가 "노크 노크!"메시지를 표시합니다. 그것이 있어야하지만, 대답 할 때 "거기 누구입니까?" (인용문 없음), "나는이 시간에 예상치 못한 일입니다"라는 오류가 표시됩니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

다시 말하지만, 저는 이것이 아마도 초등학생이라는 것을 알고 있습니다. 그래서 어떤 도움을 주셔서 감사합니다.

감사합니다.

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

을 오히려 이보다 :

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

그것을 해결하려면, %reply% 따옴표를 추가

답변

2

문제는 %reply% 변수의 값으로 대체 될 때, cmd를이 해석을 시도하는 것입니다 다음과 같이하십시오 :

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

대단히 감사합니다. 그건 내 문제를 해결. – Jerry