コマンドプロンプトで「数字のみ」である判定をする場合
コマンドプロンプトで数字以外の文字の有無の判定をする場合の例です。
多少面倒な気もするのですが、私の使用しているコマンドのご紹介です。
0から9までの数字をすべて削除して空になるかどうかの判断です。
空になれは、数字のみの判定、
空にならなければ数字以外が含まれている判定です。
「DEFINED」コマンドを使用します。
set /p N="入力値="
if defined N set N=%N:0=%
if defined N set N=%N:1=%
if defined N set N=%N:2=%
if defined N set N=%N:3=%
if defined N set N=%N:4=%
if defined N set N=%N:5=%
if defined N set N=%N:6=%
if defined N set N=%N:7=%
if defined N set N=%N:8=%
if defined N set N=%N:9=%
if not defined N echo 数字のみ
if defined N echo 数字以外あり
参照
判定を
if "%N%"=="" echo 数字のみ
if not "%N%"=="" echo 数字以外あり
とする場合には、入力値にダブルクォーテーションが含まれているとエラーになるようなので、
if defined N set N=%N:"=%
で入力値からダブルクォーテーションを削除したほうが良いでしょう。
その他の使用例
変数「H」を利用する場合
set /p N=%H%
も可能になります。
また、比較演算子を使用すれば、IFコマンド使用で数字の範囲確認も可能になります。
例】
if %H% GEQ 1 echo 1以上
if not %H% GEQ 1 echo 1以上ではない
if %H% LEQ 254 echo 254以下
if not %H% LEQ 254 echo 254以下ではない