Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - cпецсимвол в значении переменной for

Ответить
Настройки темы
CMD/BAT - cпецсимвол в значении переменной for

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


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

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


Добрый день. Возникла необходимость в строке, вводимой пользователем, проверять корректность ввода (требуется десятичное число).
Использую такую конструкцию в качестве первого шага:
Код: Выделить весь код
set /p i="Ввод:   "
for /f "delims=0123456789,." %%j in ("%i%") do set tmp1="%%j"
if defined tmp1 echo incorrect input
В принципе все работает. Скрипт реагирует на некорректные символы, но ровно до тех пор, пока в i не появляется спецсимвол.
То есть, например, 456,12a распознается как неверное число, а вот 456;12 уже нет.

Вопрос: как объяснить циклу, что я хочу, чтобы в вышеуказанном примере "456;12" переменная tmp1 принимала вид ";" ?

Отправлено: 17:04, Вчера

 

Аватара для NickM

Ветеран


Contributor


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

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


CMD/BAT - [решено] Проверка количества вводимых символов в переменную

Отправлено: 18:15, Вчера | #2



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

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


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


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

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


Ознакомился с приведенной темой. Сделал вывод, что никак. Верно?

Отправлено: 19:29, Вчера | #3


Аватара для NickM

Ветеран


Contributor


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

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


Цитата Demyurg:
Сделал вывод, что никак. Верно? »
Не верно.

В теме указано решение для:
Цитата Demyurg:
проверять корректность ввода »

Отправлено: 19:56, Вчера | #4


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


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

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


Однако в последнем посте в топике, на который Вы ссылаетесь, как раз написано обратное. Что при попытке "ввести непотребство" код валится. Что я собственно и наблюдаю в своём примере со спецсимволами. Или я что-то не так понял? Разъясните, пожалуйста.

Отправлено: 20:34, Вчера | #5


Аватара для NickM

Ветеран


Contributor


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

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


Цитата Demyurg:
Что я собственно и наблюдаю в своём примере со спецсимволами. »
На каком спецсимволе у Вас:
Цитата Demyurg:
код валится »

Отправлено: 21:03, Вчера | #6


Ветеран


Contributor


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

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


Demyurg,
Цитата Demyurg:
требуется десятичное число »
Код: Выделить весь код
@Echo Off &Cls
	:Begin
		Set "i=" 
		Set /p i="Ввод:  >"
		If Not defined i (Echo Empty input & GoTo :Begin)
		Echo "%i%"|>nul Findstr /R /C:"^\"[0-9]*\"$"|| (Echo incorrect input &Set "i=" &GoTo :Begin)
		Echo %i%
	GoTo :Begin
Pause 
Exit /B

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


Последний раз редактировалось megaloman, Сегодня в 20:38.


Отправлено: 12:45, Сегодня | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - cпецсимвол в значении переменной for

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Перенос значении в xml с помощью php daradan Программирование и базы данных 3 03-12-2019 15:35
CMD/BAT - [решено] Реализация функций длины переменной, выделение подстроки с параметрами в переменной. NiOl Скриптовые языки администрирования Windows 7 31-01-2019 19:58
CMD/BAT - Получение значении из XML и сохранение в txt sector2484 Скриптовые языки администрирования Windows 16 01-10-2018 12:42
CMD/BAT - [решено] Сравнение переменной цикла со строковой переменной NickM Скриптовые языки администрирования Windows 2 17-01-2017 10:28
CMD/BAT - [решено] В переменной содержится имя переменной opravdin Скриптовые языки администрирования Windows 3 28-01-2013 11:11




 
Переход