Sehr neu in diesem Bereich, daher entschuldige ich mich, wenn dies etwas einfaches ist. Ich führe das folgende .bat-Skript in der Eingabeaufforderung für eine Zuweisung aus.
@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.
Das Skript wird "Knock Knock!" wie es sollte, aber auf die Antwort "Wer ist da?" (ohne Zitate), ich habe den Fehler "ist zu diesem Zeitpunkt unerwartet". Was mache ich falsch?
Wieder ist mir klar, dass dies wahrscheinlich sehr elementar ist, und ich freue mich über jede Hilfe.
Vielen Dank.
Antworten:
2 für die Antwort № 1Das Problem ist, dass wenn %reply%
Variable wird durch ihren Wert ersetzt, cmd versucht dies zu interpretieren:
IF NOT Who is there? == "Who is there?" (
Lieber als das:
IF NOT "Who is there?" == "Who is there?" (
Um dies zu beheben, fügen Sie Anführungszeichen hinzu %reply%
, so was:
IF NOT "%reply%" == "Who is there?" (
ECHO "Sorry, but you are not playing the game right!"
GOTO :EOF)