sintaxis script programar ise how ejemplos ejecutar crear powershell console powershell-ise

script - Recarga el camino en powershell



sintaxis powershell (4)

Si tengo una instancia de Powershell ISE ejecutándose e instalo algo que modifica la RUTA o la modifico de alguna manera fuera de Powershell, entonces necesito reiniciar Powershell para que vea la variable PATH actualizada.

¿Hay alguna forma de volver a cargar la ruta dentro de Powershell sin reiniciarlo?


Intente obtener la ruta de la máquina y asignarla a la ruta de la sesión.

$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine")


Según la respuesta aceptada, aquí hay una función de PowerShell:

function refresh-path {$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")}function refresh-path {$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")}

Entonces simplemente llama a refresh-path


Si su ruta contiene variables de entorno que no se definieron al inicio 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, puede usar esta función recursiva para expandir 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 en refreshenv de chocolatey


Solo para sacar a la luz el comentario de Rob :

$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")