社本@元ネオニート Blog

社本@元ネオニート (元々ワック) のいたずら書き (for Programmers)

AILight Banner
AILight Blog

プロフィール

社本@元ネオニート Blog
働いたら負けかなと思っていたのですが。。とうとう働き始めました。アメリカのシアトル・エリアにある企業向けのバックアップソフトを開発している会社です。日本人は私だけ。なんとか。。やっていけてるようです。

目次

Blog 利用状況

記事分類

過去の記事

タグ

環境変数の値が数字がどうかを調べる - バッチファイル

バッチファイルでは、以下のように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


コメントを追加

タイトル
名前
URL
コメント