Batch file Windows外壳脚本";在这个时候是出人意料的。”;在命令提示符中
这是一个非常新的问题,如果这是一个简单的问题,我很抱歉。我正在命令提示符下运行以下.bat脚本以进行分配Batch file Windows外壳脚本";在这个时候是出人意料的。”;在命令提示符中,batch-file,command-prompt,windows-scripting,Batch File,Command Prompt,Windows Scripting,这是一个非常新的问题,如果这是一个简单的问题,我很抱歉。我正在命令提示符下运行以下.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 %rep
@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!”,但在响应“Who is there?”(不带引号)时,我会看到错误“is was unexpected at this time”。我做错了什么
再一次,我意识到这可能是非常基本的,所以我感谢任何帮助
谢谢。问题在于,当用变量值替换
%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)
@用户2480659您需要测试“谁在那里?”和“谁在那里?”以适应糟糕的英语。使用
IF/i NOT…
语法使其不区分大小写。非常感谢Blorgbeard。这解决了我的问题。我知道这个问题很老,但我正在尝试相同的脚本,在这个答案中进行修复,当我键入谁在那里?
不带双引号时,我不会得到回音
显示。不知道为什么对Jerry有效,但我没有收到错误信息。有什么建议吗?如果没有,那就是,所以除了谁在那里?
之外,你应该获得每个输入的回音。这就是你的意思吗?无论如何,我建议你发一个新问题——你会得到更多的人,而不仅仅是我在看这个问题。