[ホーム] - [バッチファイル サンプル一覧] - [変数が定義されているか defined で確認する]

変数が定義されているか defined で確認する | Windows バッチファイル






このページではWindows バッチファイルの definedにより変数が定義されているか確認する方法を紹介します。
すでに変数が定義されている場合はdefined はtrue を戻します。もしその時点で変数が定義されていない場合は false を戻します。

変数の定義は set コマンドで行います。例えば set a=1 と記述すると 変数 a が定義されていたことになります。

変数が定義されている場合はコマンドを実行する。


IF DEFINED 変数 コマンド



変数が定義されていない場合はコマンドを実行する。

IF NOT DEFINED 変数 コマンド




サンプルコード集

以下は Windows 10 環境におけるサンプルコードと実行結果です。


次のサンプルは変数 a が定義されていないため、"定義されていません"と表示されます。

サンプルコード:


if defined a (
echo 定義されています
) else (
echo 定義されていません

)


実行結果:


c:\>if defined a (echo 定義されています ) else (echo 定義されていません )
定義されていません




次のサンプルは変数 a が定義されているため、"定義されています"と表示されます。

サンプルコード:

set a=1

if defined a (
echo 定義されています
) else (
echo 定義されていません

)


実行結果:


c:\>set a=1

c:\>if defined a (echo 定義されています ) else (echo 定義されていません )
定義されています



ただしバッチファイルに渡された引数は上記の方法では確認できません。%1などは変数ではないからです。
変数が渡されたかどうかは以下のように比較するとよいでしょう。
次の例では引数が渡されていない場合にエラーとなります。

サンプルコード:

if "%1"=="" (

@echo エラー:引数が指定されていません

)


以下の例では2番目の引数が渡されているか確認します。

サンプルコード:

@rem 2番目の引数が存在するか確認する

if not "%2"=="" (

echo "少なくとも2個以上の引数が指定されています。引数は1個のみ指定してください。"

exit /b 1

)








本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。)

[ホーム] - [バッチファイル サンプル一覧]