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?


Okazuje się, że ktoś już o to pytał.
ᴇ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.


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
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.