バッチファイルを使用する際、スクリプトが正しく動作するためには引数などの環境変数の値をチェックし、期待する値が設定されているかどうかを確認することが重要です。特に、変数が空の場合に特定のアクションを取りたいときには、このチェックが不可欠です。
この記事では、環境変数が空かどうかを判定する方法と、その際の基本的なエラーハンドリングについて説明します。
バッチファイルの引数が空かどうかの判定
引数%1をダブルクォーテーションで囲うのが特徴的です。
また、引数の変数は%はひとつです。(例)%1
@echo off
rem 引数1の値をチェック
IF "%1"=="" (
echo arg1 is not set.
) ELSE (
echo arg1 : %1
)
環境変数が空かどうかの判定
環境変数も、変数をダブルクォーテーションで囲います。
また、環境変数の場合は%が最初と最後につきます。 (例)%変数名%
@echo off
rem 環境変数TEST_VARの値をチェック
IF "%TEST_VAR%"=="" (
echo TEST_VAR is not set.
) ELSE (
echo TEST_VAR : %TEST_VAR%.
)
なぜ変数をダブルクォーテーションで囲うのか
変数をダブルクォーテーションで囲わない場合、どのようになるかについてです。
IF %1==""
上記のように変数をダブルクォーテーションで囲わない場合、バッチファイル実行時、IF文は以下のように解釈されます。
IF ==""
これにより、以下の構文エラーが発生するようです。
( の使い方が誤っています。
まとめ
本記事では、バッチファイルにおいて、環境変数が空かどうかを判定する方法と、その際の基本的なエラーハンドリングについて説明しました。