Использование операторов If в пакетных файлах

У меня есть сценарий партии (по образцу Джошуа в "Военные игры")

@echo off
color 0b
echo Greetings, Professor Falken
set /p interface =
echo Would You Like to Play a Game?
set /p ifGame =
if /i "%ifGame%" =="yes" goto yesgame
if /i "%ifGame%" =="no" goto nogame
:yesgame
echo List of Games
echo chess
echo Poker
echo Fighter Combat
echo Guerilla Warfare
echo Desert Warfare
echo Air-to-Ground Actions
echo Theaterwide Tactical Warfare
echo Theaterwide Biotoxic and Chemical Warfare
echo Global Thermonuclear War
pause
echo Which game would you like to play?
set /p WhichGame =
pause
exit
:nogame
set /p areYouSure=Are You Sure? 
pause
exit

Но когда я ввожу "Нет", он все равно показывает список игр...

1 ответ

Вам нужно удалить пробелы между именем переменной и = символ при использовании set /p, От:

set /p ifGame =

Для того, чтобы:

set /p ifGame=

В противном случае переменная, которую вы устанавливаете, имеет пробел в конце имени. Так %ifGame% расширяется до нуля, тогда как %ifGame % будет расширяться до правильного значения.

Другие вопросы по тегам