条件分岐(1)
バッチファイルの中で条件を指定して処理を行ったり、処理の流れを変えたりすることができます。
これには「IF」コマンドを用います。
このコマンドはバッチファイルの中で利用する専用コマンドで、以下の書式で利用します。
IF 条件 処理
それではこれを使ってパラメータによって表示を変更するバッチファイルを作成してみましょう。
REM File Name IF1.BAT
@ECHO OFF
ECHO IF分の練習です。
IF "%1"=="" ECHO パラメータの指定がありません。何か指定してください
IF "%1"=="1" ECHO パラメータに1が指定されました。
IF "%1"=="2" ECHO パラメータに2が指定されました。
IF "%1"=="腹減った" ECHO 食べ過ぎると太りますよ。
さて、それでは実行してみましょう。
A:\>IF1 1 リターンキー
どうですか?ちゃんと「パラメータに1が指定されました」とでるでしょうか?さて、こう考えるとこのファイルの3行目だけはなんだか変です。実はこの3行目はエラー処理で入れているもので、パラメータが何も指定されなかったときの表示です。このように何も指定されなかったときと言うのを条件としたい場合には、「IF "%1"==""」の用に、条件として空白を指定します。
これをみて頂けるとおわかり頂けるように、上記のバッチファイルは条件としてパラメータを利用しています。
この指定にはパラメータのみならず、環境変数も利用できます。
たとえばMS-DOSが一時ファイル(作業ファイル)を作成するためのディレクトリ名を、環境変数「TMP」にセットしておく必要があるソフトがよくあります。
このようなソフトのために、この変数がセットされていなかったらエラーを出力するバッチファイルを作成してみましょう。
REM File Name IF2.BAT
ECHO 環境変数TMPを検査します。
IF "%TMP%"=="" ECHO エラーです。TMPは設定されていません。
IF NOT "%TMP%"=="" ECHO OKです。
実行は単にプロンプトから「IF2 リターンキー」とするだけです。
この中で使われている「IF NOT 条件 処理」というのは、その言葉の通り、条件が成立しなかった場合に処理を実行するための書き方です。
次へ
バッチファイル講座の目次に戻る
MS-DOSの部屋に戻る
トップページに戻る