環境変数の値が数字がどうかを調べる - バッチファイル
バッチファイルでは、以下のようにset /a を使うと数値 (整数のみ)の計算ができます。
下の例では、%HOGE2% には、2 が代入されます。
set HOGE=1
rem set HOGE=aaaa
set /a FUGA=%HOGE% + 1
しかし、%HOGE% に数字以外が代入されている場合、エラーは発生せずに、
%HOGE2% には、1 が代入されます。%HOGE% は0 と見なされるようです。
この仕様は、便利なこともあるかもしれませんが、バグになることも多いかと思います。
そこで、以下のように事前に%HOGE% が数字かどうかを検証して、エラーにすると
良いでしょう。
rem set HOGE=1
set HOGE=aaaa
set /a HOGE2=%HOGE%*1
if not "%HOGE%"=="%HOGE2%" (
echo 数字ではありません
pause
exit /b 1
)
投稿日時 : 2012年1月6日 17:36
Tweet

コメントを追加