※ ChatGPTを利用し、要約された質問です(原文:環境変数の再帰展開について)
環境変数の再帰展開について
このQ&Aのポイント
環境変数の中で環境変数を使用したときに、思ったように文字列が展開されない問題があります。
Windowsの環境変数には2種類の属性があり、展開可能属性にしても再帰展開がうまく機能しないことがあるようです。
XP環境でもVista環境と同じように環境変数の再帰展開をすることは可能でしょうか?
環境変数の中で環境変数を使用したときに、
こちらの思ったように文字列が展開されません。
例.
システム環境変数
SystemDrive=C:
WORK_PATH=%SYSTEMDRIVE%\temp
PATH=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
ユーザー環境変数
PATH=%WORK_PATH%;%PATH%
こんな感じでセットされている場合、
コマンドプロンプトでset PATHした場合の結果が異なります。
Vistaでは C:\temp;C:\WINDOWS~ と展開されますが、
Windows XP環境では %SYSTEMDRIVE%\temp;C:\WINDOWS~ と、
%SYSTEMDRIVE%の部分がそのままになってしまいます。
Windowsの環境変数には2種類の属性があり、
上記の環境変数を登録する際は"展開可能"属性にしました。
またレジストリの"Command Processor\EnableExtensions"
も1になっていることを確認しています。
ちなみにset WORK_PATHとしたときは、
両方の環境で C:\temp と表示されることから、
環境変数の再帰展開がうまく機能していないと思われます。
XP環境でもVista環境と同じように環境変数の再帰展開をすることは可能でしょうか?
お礼
環境変数の展開の順番は、 システム環境変数 -> ユーザー環境変数で それぞれアルファベット順に行っているようですね。 非常に勉強になりました。 展開順を考慮して変数を定義することにします。 ちょっと検索してみたのですが、ネット上に全然情報がないことに驚きました。