Jeśli mam uruchomione wystąpienie PowerShell ISE i instaluję coś, co modyfikuje PATH lub modyfikuję je w jakikolwiek sposób poza PowerShell, muszę ponownie uruchomić PowerShell, aby zobaczyć zaktualizowaną zmienną PATH.
Czy istnieje sposób na ponowne załadowanie ścieżki z poziomu programu PowerShell bez ponownego jej uruchamiania?
powershell
console
powershell-ise
obrabować
źródło
źródło
refreshenv
. To w zasadzie prowadzi do bardziej rozbudowanej wersji komentarza Roba.refreshenv
nie zadziałało. Odpowiedź tutaj („Robs Comment”) załatwiła sprawę. Mogą więc zaistnieć sytuacje, w których jedno podejścierefreshenv
plik nie zadziała. Żerefreshenv
działa tylko na muszli subseqent otwarty.Spróbuj uzyskać ścieżkę komputera i przypisać ją do ścieżki sesji.
źródło
Najłatwiej jest użyć Chocolatey (freeware). Działa zarówno dla CMD, jak i PowerShell. Wtedy będziesz mógł przeładować PATH (z rozszerzaniem zmiennych) za pomocą prostego polecenia:
Instalacja z cmd (wymaga uprawnień administratora):
Przykładowe użycie:
źródło
refreshenv
nie działa dla mnie (Windows 10). Nadal musiałem otworzyć nowe okno, aby to zadziałało.refreshenv
też tu nie działa. Praca nad niektórymi skryptami w środowisku Windows Sandbox, a ścieżka po prostu odmawia aktualizacji, chyba że zostanie uruchomiona nowa sesja PS.Na podstawie odpowiedzi mpen , oto funkcja PowerShell:
Po prostu zadzwoń
refresh-path
.źródło
Jeśli ścieżka zawiera zmienne środowiskowe, które nie zostały zdefiniowane na początku sesji, warto je również rozwinąć:
Dla mnie było to przydatne po zainstalowaniu NVM, który definiuje i dodaje% NVM_HOME% do ścieżki.
Aby dojść do logicznego wniosku, możesz zamiast tego rozwinąć tę funkcję rekurencyjną:
A następnie użyj:
Mam otwarty problem , aby dodać do tego roztworu
refreshenv
z Chocolatey.źródło
Aby dodać do innych odpowiedzi, możesz upewnić się, że nie dodasz zbędnych złączeń, filtrując w przypadku, gdy użytkownik ma pustą ścieżkę.
Lub, bardziej użytecznie, jeśli uruchamiasz skrypt, który dodaje do różnych lub wielu zmiennych środowiskowych, użyj funkcji, aby zresetować je wszystkie
źródło