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

Показать сообщение отдельно

Ветеран


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

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


Хоть это и глупо — проверять значение, заданное непосредственно в самом пакетном файле (я лично не вижу в этом ни малейшего смысла — в отличие от проверки интерактивно вводимых данных), но — пожалуйста:
Скрытый текст
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

>nul 2>&1 set /a iFirstVar = 12345 || (
	echo Need only digital value content for [iFirstVar] environment variable.
	exit /b 1
)

set iSecondVar=
set /p "iSecondVar=Enter digital value: "

if defined iFirstVar (
	echo Environment variable [iFirstVar] = [%iFirstVar%].

	if defined iSecondVar (
		echo Environment variable [iSecondVar] = [%iSecondVar%].
			
		echo %iSecondVar%| >nul 2>&1 findstr.exe /r /c:"^[0-9]*$" && (
			set /a iSumm = %iFirstVar% + %iSecondVar%
			echo Summ of environment variables [iFirstVar] and [iSecondVar] = [!iSumm!].
		) || (
			echo Need only digital value content for [iSecondVar] environment variable.
			exit /b 4
		)
	) else (
		echo Environment variable [iSecondVar] not defined.
		exit /b 3
	)
) else (
	echo Environment variable [iFirstVar] not defined.
	exit /b 2
)

endlocal
exit /b 0

Можете попробовать задать для переменной окружения iFirstVar вместо «12345» нечисловое значение, можете попробовать ввести для переменной окружения iSecondVar нечисловое значение и посмотреть, что будет.

Отправлено: 10:58, 19-01-2019 | #6