prosty skrypt wsadowy nie działa PS, ale działa w cmd [duplikat]

1

To pytanie ma już odpowiedź tutaj:

Mam skrypt .bat, który po prostu cds do katalogu

cddocs.bat

cd \Users\Me\Documents\NetBeansProjects\

Jest w moim katalogu domowym. ( C:\Users\Me)

W cmdprzypadku uruchamiania go

C:\Users\Me>cddocs
C:\Users\Me>cd \Users\Me\Documents\NetBeansProjects\
C:\Users\Me\Documents\NetBeansProjects\>

Działa zgodnie z oczekiwaniami, jestem w katalogu NetBeans. W PowerShell rozumiem to

PS C:\Users\Me> .\cddocs

C:\Users\Me>cd \Users\Me\Documents\NetBeansProjects\
PS C:\Users\Me>

Wygląda na to, że uruchomiłem cdpolecenie, ale wciąż jestem w katalogu domowym! Tęsknię za czymś naprawdę prostym. Jak mogę uzyskać ten mały skrypt, aby faktycznie cd cd katalogu w PowerShell?

chiliNUT
źródło
Okazuje się, że ktoś już o to pytał.
ᴇcʜιᴇ007
Również powiązany (w zasadzie duplikat): Tworzenie programu PowerShell zakłada katalog roboczy o nazwie pliku wsadowego
ᴇcʜιᴇ007

Odpowiedzi:

0

Środowisko PowerShell uruchamia skrypt w kontekście wsadowym cmd.

W tym kontekście skrypt zmienia swój bieżący katalog (za pomocą polecenia „cd”). Następnie skrypt kończy działanie.

Kiedy skrypt wychodzi z kontekstu wsadowego cmd, kontekst jest niszczony i wracasz do początkowego kontekstu PowerShell, który nie zmienił swojego bieżącego katalogu.

nex84
źródło
więc to wyjaśnia, dlaczego jednak mogę utworzyć skrypt zmieniający katalog w kontekście „PS”?
chiliNUT 22.04.16
„jak mogę utworzyć skrypt do zmiany katalogu w kontekście„ PS ”. Napisz skrypt PowerShell ( .ps1) zamiast próbować użyć pliku wsadowego?
ᴇcʜιᴇ007