crouly0,
Цитата crouly0:
значение из программы iSecondVar, если в программе задать значение например (m), то программа выдает что значение iSecondVar, а по условию должна быть ошибка »
|
ИМХО, это чересчур.
Понимаю, можно ошибиться при вводе с клавиатуры, но руками в тексте скрипта - это злонамеренное вредительство. Но, хозяин - барин.
Вот вариант с одинаковым контролем обоих чисел
Код:

@Echo Off
cls
Set "In2=12345"
:Begin
Set "In1="
Set /P "In1=Enter iFirstVar digital value: "
Call :Control "First " "iFirstVar" "%In1%"
If %ErrorLevel%==1 GoTo :Begin
If %ErrorLevel%==2 Exit /B 2
Call :Control "Second" "iSecondVar" "%In2%" ||(Pause &Exit /B %ErrorLevel%)
Echo.
Set /A Summ=%iFirstVar%+%iSecondVar%
echo Summ=iFirstVar+iSecondVar=%iFirstVar%+%iSecondVar%=%Summ%
Echo.
Pause
Exit /B 0
:Control
SetLocal
Set "In=%~3"
If Not defined In (
Echo %~1 number not defined. Script cancelling.
EndLocal &Set "%~2="
Exit /B 2
)
2>nul Set /A Inn=%In%
If Not "%In%"=="%Inn%" (
Echo %~1 number invalid entered %3.
EndLocal &Set "%~2="
Exit /B 1
)
Echo %~1 number= %~3
EndLocal &Set /A %~2=%~3
Exit /B 0
YuS_2, Не берусь в CMD организовать контроль на всевозможные спецсимволы. ИМХО, надо принять некоторые риски. ©Всегда можно подобрать данные, способные одурачить программу.