Si votre chemin d'accès contient des variables d'environnement qui n'ont pas été définies au début de la session, vous devez également les développer :
$env:Path = [System.Environment]::ExpandEnvironmentVariables([System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User"))
Pour moi, cela a été utile après l'installation de NVM qui définit et ajoute %NVM_HOME% au chemin.
Pour aller jusqu'au bout de la logique, vous pouvez utiliser cette fonction récursive pour développer le système :
function Expand-EnvironmentVariablesRecursively($unexpanded) {
$previous = ''
$expanded = $unexpanded
while($previous -ne $expanded) {
$previous = $expanded
$expanded = [System.Environment]::ExpandEnvironmentVariables($previous)
}
return $expanded
}
Et ensuite utiliser :
$env:Path = Expand-EnvironmentVariablesRecursively([System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User"))
J'ai a ouvert un dossier pour ajouter cette solution dans refreshenv
de Chocolatey.