หากเส้นทางของคุณมีตัวแปรสภาพแวดล้อมที่ไม่ได้กำหนดไว้เมื่อเริ่มต้นเซสชันคุณจะต้องขยายตัวแปรเหล่านั้นด้วย:
$env:Path = [System.Environment]::ExpandEnvironmentVariables([System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User"))
สำหรับฉันนี่เป็นประโยชน์หลังจากติดตั้ง NVM ซึ่งกำหนดและเพิ่ม% NVM_HOME% ไปยังเส้นทาง
หากต้องการใช้ฟังก์ชันนี้กับข้อสรุปเชิงตรรกะคุณสามารถใช้ฟังก์ชันเรียกซ้ำนี้เพื่อขยายแทน:
function Expand-EnvironmentVariablesRecursively($unexpanded) {
$previous = ''
$expanded = $unexpanded
while($previous -ne $expanded) {
$previous = $expanded
$expanded = [System.Environment]::ExpandEnvironmentVariables($previous)
}
return $expanded
}
แล้วใช้:
$env:Path = Expand-EnvironmentVariablesRecursively([System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User"))
ฉันได้เปิดปัญหาเพื่อเพิ่มโซลูชันนี้ลงในrefreshenv
จาก Chocolatey