Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Разное - Вывод ошибки если ответ любой кроме yes и no (BAT)

Ответить
Настройки темы
Разное - Вывод ошибки если ответ любой кроме yes и no (BAT)

Новый участник


Сообщения: 37
Благодарности: 0

Профиль | Отправить PM | Цитировать


Мне нужно сделать батник который отвечает на любой символ ошибкой например:
ответ 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
Любой символ должен вывести ошибку

Отправлено: 10:29, 03-02-2022

 

Ветеран


Сообщения: 2821
Благодарности: 253

Профиль | Отправить PM | Цитировать


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

Отправлено: 13:34, 03-02-2022 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


Для диалога удобнее и надежнее использовать 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
Если всё-таки хочется через Set /P
Код: Выделить весь код
@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

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 03-02-2022 в 20:11.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:28, 03-02-2022 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Разное - Вывод ошибки если ответ любой кроме yes и no (BAT)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Общее - [решено] Заблокировал доступ в локальной политике к запуску любой программы кроме Access sulaymanov_u Windows Server 2016/2019/2022 6 18-03-2020 20:17
Система - Вывод даты в переменную (bat) rootheaven Скриптовые языки администрирования Windows 6 23-07-2017 20:21
CMD/BAT - [решено] вывод ошибки при запуске bat-файла DaTais Скриптовые языки администрирования Windows 2 16-04-2013 12:59
Ошибки Вэб-мастера продолжаются! Кроме дополнительной рассылки спама... agorby О сайте и форуме 5 26-11-2008 13:01
Перемещаемый The Bat! или почта на любой машине в домене djoniAg Microsoft Windows NT/2000/2003 5 20-12-2005 17:35




 
Переход