Windows bat: 文字列の整数判定をする

IsInteger.bat
Windowsのバッチファイルで文字列が整数かどうかの判定をするプログラムです。仕様はプログラム中のコメントに記載しています。

実行に必要なバッチファイル(GitHub)
処理抜粋

整数判定部分を抜粋しています。
ライブラリとして作ったプログラムなので、整数以外は除外する実装になっています。

set INTEGER=判定する文字列

rem 整数判定
echo %INTEGER%| findstr /x /r "^[0-9]*$" 1>nul
if %ERRORLEVEL% neq 0 (
    echo %INTEGER%| findstr /x /r "^[+-][0-9]*$" 1>nul
    if !ERRORLEVEL! neq 0 (
        rem 整数でない場合、1を返す
        exit /b 1
    )
)

rem 以降は文字列は整数
実行形式
call IsInteger.bat 文字列

指定した文字列が整数かどうかの判定をします。

実行例と戻り値
call FileRotateSize.bat 100
戻り値 0
call FileRotateSize.bat +100
戻り値 0
call FileRotateSize.bat -100
戻り値 0
call FileRotateSize.bat abc
戻り値 1
IsInteger.bat
@setlocal enabledelayedexpansion
@echo off

rem ******************************************************************
rem * IsInteger.bat: 整数であるかを判定する
rem *
rem * [説明]
rem *   <仕様・ルール>
rem *   ・整数のうち、正数は記号無し、もしくは+記号を付ける
rem *   ・整数のうち、負数は-記号を付ける
rem * 
rem *   <戻り値>
rem *   ・整数の場合、0を返す
rem *   ・整数以外の場合、1を返す
rem * 
rem * [引数]
rem *   %1: 判定する値
rem * 
rem * [バージョン]
rem *   1.0.0
rem ******************************************************************
rem echo IsInteger.bat %1

set INTEGER=%1

rem NULLの場合、1を返す
if not defined INTEGER (
    endlocal
    exit /b 1
)

rem 整数判定
echo %INTEGER%| findstr /x /r "^[0-9]*$" 1>nul
if %ERRORLEVEL% neq 0 (
    echo %INTEGER%| findstr /x /r "^[+-][0-9]*$" 1>nul
    if !ERRORLEVEL! neq 0 (
        rem 整数でない場合、1を返す
        endlocal
        exit /b 1
    )
)

rem 整数の場合、0を返す
endlocal
exit /b 0