変数に変数文字列を挿入していPATH
ます。次の方法で変数を設定します。
$var="MyTestPath"
$mypath=[environment]::GetEnvironmentVariable("PATH",[system.environmentvariabletarget]::User)
[environment]::SetEnvironmentVariable("TEST",$var,[system.environmentvariabletarget]::User)
[environment]::SetEnvironmentVariable("PATH",$mypath+";%TEST%",[system.environmentvariabletarget]::User)
上記のコードは私には機能しません。%TEST%
新しいシェルでパスを確認すると、変数自体が展開されません。で終わる新しいパスを示しています%TEST%
。GUIまたはWindowsシェルプロンプトからこれを設定すると、これは常に機能しました。PowerShell から変数を設定すると、この動作が異なるのはなぜですか? この機能は PowerShell で削除されていますか?
スクリプトを実行するたびに変数がパスに追加され続けるため、次のことはしたくありません。
[environment]::SetEnvironmentVariable("PATH",$mypath+";"+$var,[system.environmentvariabletarget]::User)