Configuração das variáveis de ambiente do Windows PowerShell

Descobri que a definição da variável de ambiente PATH afeta apenas o prompt de comando antigo. PowerShell parece ter diferentes configurações de ambiente. Como posso alterar as variáveis de ambiente para o PowerShell (v1)?

Nota:

Eu quero fazer minhas mudanças permanentes, então eu não'não tenho que configurá-lo toda vez que eu executar o PowerShell. O PowerShell tem um ficheiro de perfil? Algo como o perfil Bash no Unix?

Se, algum tempo durante uma sessão PowerShell, você precisar de anexar temporariamente à variável de ambiente PATH, você pode faz desta maneira:

$env:Path += ";C:\Program Files\GnuWin32\bin"
Comentários (7)
Solução

A alteração das variáveis de ambiente reais pode ser feita por utilizando a informação env: namespace / drive. Por exemplo, este irá atualizar a variável de ambiente do caminho:

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

Existem formas de tornar os ambientes permanentes, mas se você estiver usando-as apenas do PowerShell, ele's provavelmente muito melhor para usar seu perfil para iniciar o configurações. Na inicialização, o PowerShell irá executar qualquer .ps1 que encontra no directório WindowsPowerShell em A pasta Meus Documentos. Tipicamente você tem um arquivo profile.ps1 já lá está. O caminho no meu computador é

C:\Users\JaredPar\Documents\WindowsPowerShell\profile.ps1
Comentários (8)

Você também pode modificar as variáveis de usuário/sistema permanentemente (ou seja, será persistente ao longo dos reinícios da shell) com o seguinte:

Modificar uma variável de ambiente do sistema

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

Modificar uma variável de ambiente do usuário

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

Utilização dos comentários - adicionar à variável de ambiente do sistema

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

A solução baseada em strings também é possível se você não't quiser escrever tipos

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