对此非常新,所以如果这很简单,我道歉。我在命令提示符下运行以下.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!”应该如此,但在回答“谁在那里?” (没有引号),我收到错误“此时此刻意外”。我做错了什么?
同样,我意识到这可能非常基本,所以我感谢任何帮助。
感谢。
答案 0 :(得分: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)