■
コマンドラインで、%のエスケープ方法CommentsAdd Star
バッチファイルでは、%は、%%でエスケープされる。
%?%は、環境変数がなくても置換される。
もし、環境変数がなければ、空と置換されて、%?%が消える。コマンドプロンプトでは、簡単なエスケープ方法はない。
環境変数がなければ置換されずに、そのまま残る。
これを利用してエスケープする。コマンドプロンプトで、%をエスケープするには、%の直後に^や継続行を入れる。
ECHO %^CD%
や
ECHO %^(改行)
More ? CD%は、
%CD%
と出る。
前者は^CDという環境変数がないことを利用している。当然、
SET "^CD=bbb"
のようにして、^CDという環境変数があると置換される。
引用符("?")内では、%はエスケープされないが、^はエスケープされることに注意。
ECHO "%^CD%"
は、
"%^CD%"
と出る。
ただし、引用符の前に^を付けると、^"?^"内の^はエスケープされません。
^だけでなく、&|)などもエスケープされません。ECHO ^"%^CD%"
は、
"%CD%"
と出ます。