バッチファイルでIF文の条件式を書く時の注意点 - Windowsのコマンドプロンプト(bat,cmd)
○Windows XP
信頼性の高いバッチファイルを書く方法についてです。IF文で変数を使う条件式を書く時は、条件式の左辺や右辺を「"」で括る事を、おすすめします。
そうしないと、変数の値が空の時に、左辺や右辺の値が空になって、文法エラーを起こす事があるからです。
o この動きは、コマンドプロンプト画面とは異なりますので、注意します。
o 問題を起こすのは、変数の値を「%」や「!」を使って表示する時です。
o 問題を起こさないのは
+ 変数の前後に普通の文字が入っている場合 = 必ず文字が残ります。
+ 値を数値と解釈する時も、大丈夫みたいです。例えば、「IF ERRORLEVEL 数値」構文
**** 問題が起こる書き方
o %1 が空の時、IF文の所で文法エラーになります = 途中で終了してしまいます。
--------
@echo off
if %1==ミクさん echo ミクさん。おはようございます。
echo 皆さん、おはようございます。
--------
**** 正しい書き方
o %1が空の時にも正しく動く書き方です。変数 %1 と値の両方を「"」で括るのがポイントです。
--------
@echo off
if "%1"=="ミクさん" echo ミクさん。おはようございます。
echo 皆さん、おはようございます。
--------
**** 確認したバージョン
o Windows XP Service Pack 3
==
関連ページ:
▼Windowsコマンド。制御文と環境変数(▼ABC順)
▼Windowsコマンド一覧(▼ABC順)
▼コマンドプロンプト画面
▼制作メモ
> バッチファイル。IF文やFOR文の中で複数コマンドを書く時の注意点
%変数の使い方
環境変数の使い方。置換と部分文字列