2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

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

2006年10月17日 (火)

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

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

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

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

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

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