У меня проблема с успешным вводом, но я не могу использовать команду IF
с этим вводом.Я уже пробовал:
if "%input%" equ "s helpme" goto localhost.mail.helpme
Я исключил возможность ошибки в :debug function
, ошибку в символе '.'
и возможность ошибки в секции ввода set /p
,У меня нет идей о том, как работает код.
Я знаю, как решить общую проблему пробелов в пакетном режиме, но по какой-то причине этот код все еще не работает для меня.Вот код и выходные данные из файла отладки:
:: GAME.BAT
set lvl=003
set debug=true
:localhost.mail
call :debug "vdir localhost.mail"
if %lvl% equ 002 goto localhost.mail.help
set /p input=localhost.mail
call :debug "localhost.mail input %input%"
if %input% equ h goto localhost.mail.help
if %input% equ help goto localhost.mail.help
if %input% equ listmail goto localhost.mail.list
if %input% equ l goto localhost.mail.list
if "%input%" equ "s helpme" goto localhost.mail.helpme
if "%input%" equ "show helpme" goto localhost.mail.helpme
if %input% equ e goto localhost
if %input% equ exit goto localhost
:localhost.mail.help
call :debug "vdir localhost.mail.help"
if %lvl% equ 002 echo Advanced to level 3
if %lvl% equ 002 set lvl=003
echo (h)elp - Display this help screen
echo (l)istmail - Lists emails
echo (s)how - Shows an email ex. show helpme
echo (e)xit - Exits email
goto localhost.mail
:localhost.mail.list
call :debug "vdir localhost.mail.list"
if %lvl% gtr 002 echo helpme
goto localhost.mail
:localhost.mail.helpme
call :debug "vdir localhost.mail.helpme"
if %lvl% lss 003 goto localhost.mail
echo WORK IN PROGRESS, COME BACK NEXT UPDATE!
echo.
goto localhost.mail
:debug
if %debug% equ true echo %date% %time% %~1>>debug.txt
GOTO :EOF
:: DEBUG.TXT
Tue 11/20/2018 13:33:05.84 vdir localhost.mail
Tue 11/20/2018 13:33:05.86 vdir localhost.mail.help
Tue 11/20/2018 13:33:05.87 vdir localhost.mail
Tue 11/20/2018 13:33:10.15 localhost.mail input s helpme
В конце DEBUG.TXT
это то место, где окно пакета вышло из ошибки кодирования.