Я предполагаю, что ошибка возникает в этой строке:
IF %message%==exit GOTO :exit
Если %message%
содержит пробел, например, h h
, эта строка расширяется до
IF h h==exit GOTO :exit
, который не является допустимым синтаксисом для оператора IF
.
Чтобы избежать ошибки, заключите операнды в кавычки:
IF "%message%"=="exit" GOTO :exit
Но имейте в виду, что этот вариант также ненадежен и выдает синтаксическую ошибку, если %message%
содержит символ кавычки "
.
И, кстати, вы можете выполнять сравнение строк без учета регистра, используя переключатель /i
:
IF /i "%message%" EQU "exit" GOTO :exit