Configuración de las variables de entorno de Windows PowerShell

He descubierto que la configuración de la variable de entorno PATH sólo afecta al antiguo símbolo del sistema. PowerShell parece tener una configuración de entorno diferente. ¿Cómo puedo cambiar las variables de entorno para PowerShell (v1)?

Nota:

Quiero que mis cambios sean permanentes, para no tener que configurarlos cada vez que ejecute PowerShell. ¿Tiene PowerShell un archivo de perfil? ¿Algo así como el perfil de Bash en Unix?

Si, en algún momento durante una sesión de PowerShell, necesita añadir a la variable de entorno PATH temporalmente, puede hacerlo de esta manera:

idioma: sh -->

$env:Path += ";C:\Program Files\GnuWin32\bin"
Comentarios (7)
Solución

El cambio de las variables de entorno reales se puede hacer utilizando la información env: namespace / drive. Por ejemplo, este código código actualizará la variable de entorno path:

lenguaje: sh -->

$env:Path = "SomeRandomPath";             (replaces existing path) 
$env:Path += ";SomeRandomPath"            (appends to existing path)

Hay maneras de hacer que la configuración del entorno sea permanente, pero si sólo los utiliza desde PowerShell, probablemente sea mucho mejor utilizar su perfil para iniciar la configuración. Al iniciar, PowerShell ejecutará cualquier archivo .ps1 que encuentre en el directorio WindowsPowerShell bajo carpeta de Mis Documentos. Típicamente usted tiene un archivo profile.ps1 allí. La ruta en mi ordenador es

C:\Users\JaredPar\Documents\WindowsPowerShell\profile.ps1
Comentarios (8)

También puedes modificar las variables de entorno del usuario/sistema de forma permanente (es decir, que serán persistentes a través de los reinicios del shell) con lo siguiente:

Modificar una variable de entorno del sistema

[Environment]::SetEnvironmentVariable
     ("Path", $env:Path, [System.EnvironmentVariableTarget]::Machine)

Modificar una variable de entorno de usuario

[Environment]::SetEnvironmentVariable
     ("INCLUDE", $env:INCLUDE, [System.EnvironmentVariableTarget]::User)

Uso de los comentarios - añadir a la variable de entorno del sistema

[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) + ";C:\bin",
    [EnvironmentVariableTarget]::Machine)

La solución basada en cadenas también es posible si no quiere escribir tipos

[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\bin", "Machine")
Comentarios (11)