У меня всегда возникает эта проблема при написании пакетных скриптов. Всякий раз, когда у меня появляется запрос на скрипт, пользователь должен установить переменную, если вводится точка с запятой (это только один пример), скрипт будет закрыт. Есть ли способ предотвратить это?Предотвращение прерывания пакетного сценария при недопустимом вводе символов
Пример:
@echo off
:1
cls
echo Please enter your ID:
set /P id=
if /i %id%==119 goto Tom
if /i %id%==204 goto Brittany
if /i %id%==12 goto Shannon
if /i %id%==64 goto Jack
goto 1
:Tom
cls
echo Tom, you have to mow the lawn.
pause>nul
exit
:Brittany
cls
echo Brittany, you have to fold the laundry.
pause>nul
exit
:Shannon
cls
echo Shannon, you have to feed the dog.
pause>nul
exit
:Jack
cls
echo Jack, you have to replace the radio's capacitors.
pause>nul
exit
Что я хотел бы видеть, что работает скрипт:
C:\>myscript.bat
Please enter your ID:
asjfash;dfjlas;ldf
asjfash;dfjlas;ldf==i was unexpected at this time.
и сценарий закрывается.
Спасибо!
Пожалуйста [править] Ваш вопрос и поделиться своим неисправным кодом, следуйте инструкциям для создания [ mcve]. – JosefZ
Прошу прощения, JosefZ, я все еще новичок здесь. – ditheredtransparency
Отображение _result_ является правильным и необходимым, но не достаточным; покажите свой неудачный _code_. Прочитайте [Синтаксис: символы, разделители и цитаты], (http://ss64.com/nt/syntax-esc.html). Определенно, вам нужно избегать точки с запятой, например.как в этом примере: 'if/i '% varname%" == "literal; string" call: labelE' – JosefZ