CMD/BAT - [решено] Проверка количества вводимых символов в переменную
-
sushnyak
CMD/BAT - [решено] Проверка количества вводимых символов в переменную
Как реализовать проверку на введённые символы?
нужна проверка количества вводимых символов в переменную,
символы могут быть как цифровые/текстовые/комбинированные
но их количество должно быть не менее 8 и не более 63
ввод в переменную SET /p KEY= (цифры и/или буквы в количестве от 8 до 63 символов)
если условие не выполняется вернуться к началу
если условие выполняется перейти на следующую метку
моих знаний здесь явно недостаточно, нужна помощь Гуру.
нужна проверка количества вводимых символов в переменную,
символы могут быть как цифровые/текстовые/комбинированные
но их количество должно быть не менее 8 и не более 63
ввод в переменную SET /p KEY= (цифры и/или буквы в количестве от 8 до 63 символов)
если условие не выполняется вернуться к началу
если условие выполняется перейти на следующую метку
моих знаний здесь явно недостаточно, нужна помощь Гуру.
-
megaloman
Re: CMD/BAT - [решено] Проверка количества вводимых символов в переменную
Код: Выделить всё
@Echo Off
cls
Set /A Min=8, Max=63
Set "R=0-9A-Za-z"
:Begin
Echo.
Set "KEY="
(Set /P KEY=Input KEY %Min%^<=n^<=%Max% "%R%" or empty string for Exit ^> )
If "%KEY%"=="" (Echo Empty string. Canceled. &Exit /B 0)
Call :Check "%KEY%" %Min% %Max% "%R%"
If %ErrorLevel% NEQ 0 (Echo !!! Wrong KEY="%KEY%" &GoTo :Begin)
Echo. &Echo we continue to sculpt our ingenious script :) !!!
Pause
Exit /B
:Check
If "%~1"=="" Exit /B 1
Set /A MM=%2-1
Set "In=%~1"
Call Set "In1=%%In:~%MM%,1%%"
Call Set "In2=%%In:~%3,1%%"
If Not "%In1%"=="" If "%In2%"=="" Echo %~1|>nul 2>nul FindStr /R /C:"^[%~4]*$" &&Exit /B 0
Exit /B 1-
megaloman
Re: CMD/BAT - [решено] Проверка количества вводимых символов в переменную
Цитата sushnyak:
1 завершает работу при нажатии Enter (без ввода данных)
так задумано. Я считаю, что должен быть простой способ выйти из цикла при вводе данных
Цитата sushnyak:
2 не проходит проверку если вводимые данные комбинированы (буквы и цифры)
Это инсинуации
. Докажите. Свой скриншот я приложил
1 завершает работу при нажатии Enter (без ввода данных)
»
так задумано. Я считаю, что должен быть простой способ выйти из цикла при вводе данных
Цитата sushnyak:
2 не проходит проверку если вводимые данные комбинированы (буквы и цифры)
»
Это инсинуации
. Докажите. Свой скриншот я приложил- Вложения
-
[Расширение png было запрещено, вложение больше недоступно.]
-
sushnyak
Re: CMD/BAT - [решено] Проверка количества вводимых символов в переменную
Код:
в этой строке заменил выделенное на
Код:
Лишь в этом случае сценарий продолжает работать,
если поле ввода оставить пустым и нажать Enter (без ввода данных)
Можно ли скрыть лишнюю информацию из выводимой строки приглашения ?
Цитата:
Input KEY 8
Код: Выделить всё
If "%KEY%"=="" (Echo Empty string. Canceled. &Exit /B 0)в этой строке заменил выделенное на
Код:
Код: Выделить всё
GoTo :BeginЛишь в этом случае сценарий продолжает работать,
если поле ввода оставить пустым и нажать Enter (без ввода данных)
Можно ли скрыть лишнюю информацию из выводимой строки приглашения ?
Цитата:
Input KEY 8
-
YuS_2
Re: CMD/BAT - [решено] Проверка количества вводимых символов в переменную
Цитата sushnyak:
проверка количества вводимых символов в переменную
Цитата sushnyak:
символы могут быть как цифровые/текстовые/комбинированные
Будьте осторожны в своих желаниях
Надо понимать, что попытка ввода некоторых недопустимых символов попросту будет заваливать весь код, т.е. будет вызвано исключение и прерывание работы сценария. Полностью исключить такую ситуацию в CMD затруднительно.
проверка количества вводимых символов в переменную
CMD/BAT - [решено] Проверка количества вводимых символов в переменную
Цитата sushnyak:
символы могут быть как цифровые/текстовые/комбинированные
CMD/BAT - [решено] Проверка количества вводимых символов в переменную
Будьте осторожны в своих желаниях

Надо понимать, что попытка ввода некоторых недопустимых символов попросту будет заваливать весь код, т.е. будет вызвано исключение и прерывание работы сценария. Полностью исключить такую ситуацию в CMD затруднительно.
-
sushnyak
Re: CMD/BAT - [решено] Проверка количества вводимых символов в переменную
Цитата megaloman:
Это инсинуации . Докажите. Свой скриншот я приложил
Они самые
по невнимательности вводил буквы кириллицей.
так что пардоньте
Это инсинуации . Докажите. Свой скриншот я приложил
CMD/BAT - [решено] Проверка количества вводимых символов в переменную
Они самые

по невнимательности вводил буквы кириллицей.
так что пардоньте

-
sushnyak
Re: CMD/BAT - [решено] Проверка количества вводимых символов в переменную
Цитата YuS_2:
попытка ввода некоторых недопустимых символов
о спец символах не было речи, если смутило слово комбинированные,
то подразумевается ввод текстово-цифровой (46h0j35b3v86) для примера.
попытка ввода некоторых недопустимых символов
CMD/BAT - [решено] Проверка количества вводимых символов в переменную
о спец символах не было речи, если смутило слово комбинированные,
то подразумевается ввод текстово-цифровой (46h0j35b3v86) для примера.
-
megaloman
Re: CMD/BAT - [решено] Проверка количества вводимых символов в переменную
sushnyak,
По мотивам Ваших хотелок с косметическими изменениями
[spoiler]Код: [/spoiler]
По мотивам Ваших хотелок с косметическими изменениями
[spoiler]Код: [/spoiler]
Код: Выделить всё
@Echo Off
cls
Set /A Min=8, Max=63
Set "R=0-9A-Za-z"
:Begin
Echo. &Set "KEY="
(Set /P KEY=Input KEY ^> )
Call :Check "%KEY%" %Min% %Max% "%R%" ||(Echo !!! Wrong KEY="%KEY%" &GoTo :Begin)
Echo. &Echo KEY="%KEY%" We continue to sculpt our ingenious script :) !!!
Pause
Exit /B
:Check
Echo %~1|>nul 2>nul FindStr /R /C:"^[%~4]*$" ||Exit /B 1
Set /A MM=%2-1
Set "In=%~1"
Call Set "In1=%%In:~%MM%,1%%"
Call Set "In2=%%In:~%3,1%%"
If Not "%In1%"=="" If "%In2%"=="" Exit /B 0
Exit /B 1-
sushnyak
Re: CMD/BAT - [решено] Проверка количества вводимых символов в переменную
megaloman,
Премного благодарен за помощь,
последний код - самое, что надо
Премного благодарен за помощь,
последний код - самое, что надо

-
YuS_2
Re: CMD/BAT - [решено] Проверка количества вводимых символов в переменную
Цитата sushnyak:
о спец символах не было речи, если смутило слово комбинированные
Да мне-то чего смущаться?
Элементарная логика... если Вам требуется проверка на правильность ввода, то это явно не лично для Вас (а иначе не вижу смысла в такой проверке). Далее, если символы будет вводить кто-то ещё, то ему рано или поздно придет в голову мысль, что надо попробовать набрать какое-нибудь непотребство (если есть уверенность, что не придет, то всегда на готове встречный вопрос: а зачем тогда проверка?). В общем, код будет завален, сценарий прерван, со всеми вытекающими... а вот далее, всё зависит от критичности исполнения кода и естественно, решение о приемлемости неустойчивого кода... за Вами.
о спец символах не было речи, если смутило слово комбинированные
CMD/BAT - [решено] Проверка количества вводимых символов в переменную
Да мне-то чего смущаться?
Элементарная логика... если Вам требуется проверка на правильность ввода, то это явно не лично для Вас (а иначе не вижу смысла в такой проверке). Далее, если символы будет вводить кто-то ещё, то ему рано или поздно придет в голову мысль, что надо попробовать набрать какое-нибудь непотребство (если есть уверенность, что не придет, то всегда на готове встречный вопрос: а зачем тогда проверка?). В общем, код будет завален, сценарий прерван, со всеми вытекающими... а вот далее, всё зависит от критичности исполнения кода и естественно, решение о приемлемости неустойчивого кода... за Вами.