Si su ruta contiene variables de entorno que no se definieron al comienzo de la sesión, también querrá expandirlas:
$env:Path = [System.Environment]::ExpandEnvironmentVariables([System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User"))
Para mí, esto fue útil después de instalar NVM, que define y agrega% NVM_HOME% a la ruta.
Para llevar esto a su conclusión lógica, podría usar esta función recursiva para expandirse en su lugar:
function Expand-EnvironmentVariablesRecursively($unexpanded) {
$previous = ''
$expanded = $unexpanded
while($previous -ne $expanded) {
$previous = $expanded
$expanded = [System.Environment]::ExpandEnvironmentVariables($previous)
}
return $expanded
}
Y luego usa:
$env:Path = Expand-EnvironmentVariablesRecursively([System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User"))
He abierto un problema para agregar esta solución refreshenv
desde Chocolatey.