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 cmd
przypadku 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 cd
polecenie, 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?
windows
batch
powershell
chiliNUT
źródło
źródło
Odpowiedzi:
Ś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.
źródło
.ps1
) zamiast próbować użyć pliku wsadowego?