/ / Windows Shell Script "ist zu diesem Zeitpunkt unerwartet". In Eingabeaufforderung - Batch-Datei, Eingabeaufforderung, Windows-Scripting

Windows Shell Script "war zu diesem Zeitpunkt unerwartet." In der Eingabeaufforderung - Batch-Datei, Eingabeaufforderung, Windows-Skripting

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 № 1

Das 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)