« バッチファイル、コンソールアプリなどを非表示で実行する。 | トップページ | 非表示のアプリを表示したり、コマンドラインを区別してプロセスを終了させる。 »

2006年10月17日 (火)

環境変数は一般的に遅延展開を使うべし。

一般のスクリプト言語では、変数の値によって構文エラーになったりしませんが、
バッチファイルでは、
%変数%の値にシェルの特殊文字<|>(&)"や構文のキーワードが含まれていると、
構文エラーになったり、意図しない処理に変わったり、します。
%変数%は、Eval()みたいなもんです。

ところが、遅延展開の!変数!は、一般のスクリプト言語の変数のように使えます。

なので、環境変数は、原則として、遅延展開を用いることにしましょう。

Eval()みたいな用途のときだけ、例外として、%変数%を使いましょう。

« バッチファイル、コンソールアプリなどを非表示で実行する。 | トップページ | 非表示のアプリを表示したり、コマンドラインを区別してプロセスを終了させる。 »