◇入力された値が数値か確認する
サンプルのみ掲載します。
入力された値が数値か確認するサンプル
NumCheck.bat
@echo off
:: 遅延展開宣言 バグの原因になる場合があります;
setlocal enabledelayedexpansion
:: 入力されたものが指定された範囲の数値かチェックする;
:InputNumeric
set NumMin=10
set NumMax=100
echo 数値を%NumMin%~%NumMax%の範囲で入力してください。
set /p Num=">"
:: 数値チェック;
call :IsInteger %%Num%%
if %ERRORLEVEL% neq 0 (
echo 数値以外が含まれています。
goto :InputNumeric
)
:: 指定サイズチェック; ifを重ねて AND を判定をしています。;
if %Num% geq %NumMin% if %Num% leq %NumMax% goto :InputNumericEnd
echo 入力する数値が指定可能な範囲外です。
echo.
goto :InputNumeric
:InputNumericEnd
echo.
echo 入力された数値は [%Num%] でした。
:: 終了処理(エクスプローラーから起動されていた場合はPauseする);
:EndProcess
echo %cmdcmdline% | find /i "%~f0">NUL
if %ERRORLEVEL% equ 0 Pause
goto :end
:: 変数が数値かチェック;
:IsInteger
set X=%1
if "%X%" equ "" exit /b -1
if defined X set X=%X:0=%
if defined X set X=%X:1=%
if defined X set X=%X:2=%
if defined X set X=%X:3=%
if defined X set X=%X:4=%
if defined X set X=%X:5=%
if defined X set X=%X:6=%
if defined X set X=%X:7=%
if defined X set X=%X:8=%
if defined X set X=%X:9=%
if not defined X exit /b 0
exit /b -1
おわりに
他にも「⧉Windowsのバッチファイルのテクニックをご紹介します」にてご紹介させて頂いております。
お時間ありましたら覗いてみてください
お粗末様でした。