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.


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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.