Se o seu caminho contiver variáveis de ambiente que não foram definidas no início da sessão, você também precisará expandi-las:
$env:Path = [System.Environment]::ExpandEnvironmentVariables([System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User"))
Para mim, isso foi útil após a instalação do NVM, que define e adiciona% NVM_HOME% ao caminho.
Para levar isso à sua conclusão lógica, você pode usar esta função recursiva para expandir:
function Expand-EnvironmentVariablesRecursively($unexpanded) {
$previous = ''
$expanded = $unexpanded
while($previous -ne $expanded) {
$previous = $expanded
$expanded = [System.Environment]::ExpandEnvironmentVariables($previous)
}
return $expanded
}
E então use:
$env:Path = Expand-EnvironmentVariablesRecursively([System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User"))
Eu abriu uma questão de adicionar esta solução em refreshenv
de Chocolatey.