Wenn Ihr Weg Umgebungsvariablen enthält, die nicht zu Beginn der Sitzung definiert wurden, werden Sie diese natürlich auch
erweitern möchten
$env:Path = [System.Environment]::ExpandEnvironmentVariables([System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User"))
Für mich war dies nützlich nach der Installation von NVM, die definiert und fügt% NVM_HOME% auf den Pfad
Um dies zu seinem logischen Schluss Sie diese rekursive Funktion stattdessen zu erweitern
function Expand-EnvironmentVariablesRecursively($unexpanded) {
$previous = ''
$expanded = $unexpanded
while($previous -ne $expanded) {
$previous = $expanded
$expanded = [System.Environment]::ExpandEnvironmentVariables($previous)
}
return $expanded
}
und dann
$env:Path = Expand-EnvironmentVariablesRecursively([System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User"))
ich diese Lösung in refreshenv
von opened an issue chocolatey verwenden haben verwenden könnte
** Yup. ** [Robs Kommentar] (https://stackoverflow.com/questions/17794507/reload-the-path-in- Powershell # comment25967553_17794885) rockt tatsächlich die Powershell Casbah. –
Sollte einfacher sein ... – Dyin
Wenn Sie chocolatey verwenden und es in Ihr Profil geladen wird, gibt es einen einfacheren Befehl: 'refrehenv'. Dies führt im Grunde eine [ausführlichere Version] (https://github.com/chocolatey/choco/blob/stable/src/chocolatey.resources/helpers/functions/Update-SessionEnvironment.ps1) von Robs Kommentar. –