1

これは非常に新しいので、これが単純なものであれば申し訳ありません。割り当てのために、コマンド プロンプトで次の .bat スクリプトを実行しています。

@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!」というプロンプトを表示します。当然のことですが、「そこにいるのは誰ですか?」と答えると。(引用なし)、「現時点では予想外でした」というエラーが表示されます。私は何を間違っていますか?

繰り返しますが、これはおそらく非常に初歩的なことだと思いますので、助けていただければ幸いです。

ありがとう。

4

1 に答える 1

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)
于 2013-06-13T03:41:40.157 に答える