Si j'ai une instance de PowerShell ISE en cours d'exécution et que j'installe quelque chose qui modifie le PATH ou que je le modifie de quelque manière que ce soit en dehors de PowerShell, je dois redémarrer PowerShell pour qu'il voie la variable PATH mise à jour.
Existe-t-il un moyen de recharger le chemin à partir de PowerShell sans le redémarrer?
refreshenv
. Cela exécute essentiellement une version plus élaborée du commentaire de rob.refreshenv
n'a pas fonctionné. La réponse ici ('Robs Comment') a bien fait l'affaire. Ainsi, il peut y avoir des situations où une approche fonctionne et l'autre ne fonctionne pas ...refreshenv
cela ne fonctionnera pas. Lerefreshenv
seul fonctionne sur les shells suivants ouverts.Essayez d'obtenir le chemin de la machine et de l'affecter au chemin de la session.
la source
Le plus simple, utilisez Chocolatey (freeware). Cela fonctionne à la fois pour CMD et PowerShell. Ensuite, vous pourrez recharger PATH (avec extension variable) avec une simple commande:
Installation à partir de cmd (nécessite des droits d'administrateur):
Exemple d'utilisation:
la source
refreshenv
n'a pas fonctionné pour moi (Windows 10). Je devais encore ouvrir une nouvelle fenêtre pour que cela prenne effet.refreshenv
ne fonctionne pas non plus ici. Travailler sur certains scripts dans un environnement Windows Sandbox et le chemin refuse simplement d'être mis à jour à moins qu'une nouvelle session PS ne soit démarrée.Basé sur la réponse de mpen , voici une fonction PowerShell:
Alors appelez
refresh-path
.la source
Si votre chemin contient des variables d'environnement qui n'ont pas été définies au début de la session, vous souhaiterez également les développer:
Pour moi, cela a été utile après l'installation de NVM qui définit et ajoute% NVM_HOME% au chemin.
Pour amener cela à sa conclusion logique, vous pouvez utiliser cette fonction récursive pour développer à la place:
Et puis utilisez:
J'ai ouvert un problème pour ajouter cette solution à
refreshenv
partir de Chocolatey.la source
Juste pour ajouter d'autres réponses, vous pouvez vous assurer de ne pas ajouter de jointures superflues en filtrant au cas où l'utilisateur aurait un chemin vide.
Ou, plus utilement, si vous exécutez un script qui ajoute à une ou plusieurs variables d'environnement, utilisez une fonction pour les réinitialiser toutes
la source