Odpowiednik polecenia „source” basha w PowerShell?

15

Aby uruchomić skrypt bash wiersz po wierszu (na przykład w celu zachowania zmiennych środowiskowych), wykonaj następujące czynności:

$ . myscript.sh

Lub:

$ source myscript.sh

Mam skrypt PowerShell, który - między innymi - ustawia wartość znaku zachęty za pomocą wywoływanej funkcjiprompt . Samo uruchomienie tego skryptu („. \ Myscript.ps1”) nie zmienia monitu. Jednak uruchamianie funkcji wiersz po wierszu jak polecenie .

Tak więc potrzebuję efektywnie sourcepolecenia PowerShell. Czy to możliwe?

EDYCJA : Czy ten post powinien zostać przeniesiony do Stackoverflow?

Wyjaśnienie 1 : Ponieważ uruchamiam tę funkcję tylko w razie potrzeby (tj. Nie dla każdej sesji PowerShell i / lub zawsze), nie chcę przechowywać w moim profilu startowym PowerShell.

Sridhar Ratnakumar
źródło
Uwaga: twoje dwa polecenia Bash są różne. Prawdopodobnie nie chciałeś mieć kropki w drugim lub chciałeś, aby oba miały „./” (bieżący katalog) na początku nazwy skryptu.
Wstrzymano do odwołania.
Naprawiono (usuwając kropkę)
Sridhar Ratnakumar,

Odpowiedzi:

29

Możesz także „ kropkować źródło ” w PowerShell. Musisz tylko upewnić się, że podałeś pełną ścieżkę. Jeśli więc skrypt, który chcesz załadować, znajduje się w katalogu lokalnym, wykonaj następujące czynności:

PS C:\>. .\myscript.ps1
zdan
źródło
To jest właściwa odpowiedź :) dot sourcing w PowerShell działa prawie tak samo jak w Bash
Jaykul
Nie miałem pojęcia, że ​​możesz to zrobić. ładny.
DaveParillo,
Zaraz! Dlaczego nie próbowałem tego wcześniej? :)
Sridhar Ratnakumar
1
Czy można to zrobić za pomocą istniejącego skryptu cmd? Czy wykonanie skryptu cmd spowodowało modyfikację środowiska PowerShell?
peabody,
1
Co jeśli musisz uruchomić .batplik i zmodyfikować środowisko?
Chloe