Войти

Показать полную графическую версию : Вывод ошибки если ответ любой кроме yes и no (BAT)


hexer54539
03-02-2022, 10:29
Мне нужно сделать батник который отвечает на любой символ ошибкой например:
ответ duf0fwf = Unknown error
ответ 875437 = Unknown error
ответ T = Unknown error

echo Skip Mesh Editing?
set /p x=
if /i %x%==yes goto skipmesh
if /i %x%==no goto MeshEdit
if /i %x%==%ascii% echo Unknown Answer
if /i %x%==%random% echo Unknown Answer
if "%errorlevel%"=="%ascii%" cls Echo Unknown Answer
if "%errorlevel%"=="%random%" cls Echo Unknown Answer
Помогите пожалуйста и главное чтобы только отвечало на yes и no
Любой символ должен вывести ошибку

bredych
03-02-2022, 13:34
Граждане, а чего вы массово игнорируете раздел
http://forum.oszone.net/forum-102.html
Который вообще-то для этого и предназначен?

megaloman
03-02-2022, 19:28
Для диалога удобнее и надежнее использовать CHOICE. Неверный выбор просто не воспринимается.@Echo Off
cls
CHOICE /N /CS /C yn /M "Введите y=yes или n=no"
Set /A Out=%Errorlevel%

If %Out%==1 Call :skipmesh
If %Out%==2 Call :MeshEdit
pause
Exit /B

:skipmesh
Echo yes=skipmesh
Exit /B

:MeshEdit
Echo no=MeshEdit
Exit /B
@Echo Off
cls
Call :YesNo "YesNo"
If "%YesNo%"=="yes" (Call :skipmesh) Else (Call :MeshEdit)
pause
Exit /B

:YesNo
SetLocal
:BeginYesNo
Set "Ans="
Set /P Ans=Input yes no:
If Not "%Ans%"=="no" If Not "%Ans%"=="yes" (
Echo Answer="%Ans%". Unknown error!
GoTo :BeginYesNo
)
EndLocal &Set "%~1=%Ans%"
Exit /B

:skipmesh
Echo yes=skipmesh
Exit /B

:MeshEdit
Echo no=MeshEdit
Exit /B
@Echo Off
cls
Call :YesNo "yes_skipmesh" "no_MeshEdit"
pause
Exit /B

:YesNo
SetLocal
:BeginYesNo
Set "Ans="
Set /P Ans=Input yes no:
If Not "%Ans%"=="no" If Not "%Ans%"=="yes" (
Echo Answer="%Ans%". Unknown error!
GoTo :BeginYesNo
)
EndLocal &If "%Ans%"=="yes" (Call :%~1) else (Call :%~2)
Exit /B

:yes_skipmesh
Echo yes_skipmesh
Exit /B

:no_MeshEdit
Echo no_MeshEdit
Exit /B




© OSzone.net 2001-2012