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"
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
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")