Czy istnieje sposób na zmianę domyślnej lokalizacji programu PowerShell?
Jak ustawić domyślny katalog roboczy PowerShell?
Czy istnieje sposób na zmianę domyślnej lokalizacji programu PowerShell?
Jak ustawić domyślny katalog roboczy PowerShell?
Odpowiedzi:
Możesz określić katalog do otwarcia podczas uruchamiania PowerShell:
powershell.exe -NoExit -command "& {Set-Location $env:systemroot}"
Po prostu użyj go w swoim skrócie.
Lub użyj profilu, aby ustawić katalog startowy.
pwsh.exe -WorkingDirectory C:\YourLocation\Goes\Here
Utwórz profil programu PowerShell w następujący sposób.
Uruchom PowerShell jako administrator i wykonaj następujące polecenie:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Umożliwi to PowerShell uruchamianie lokalnych skryptów i skryptów pobranych z Internetu, które zostały podpisane. Przeczytaj więcej o tym poleceniu w dokumentacji .
W Documents
folderze znajdź folder o nazwie WindowsPowerShell
dla klasycznego programu PowerShell lub PowerShell
dla nowszego programu PowerShell Core. Jeśli nie istnieje, to w porządku; po prostu go stwórz.
profile.ps1
w WindowsPowerShell
folderze (lub PowerShell
dla programu PowerShell Core).Otwórz profile.ps1
i dodaj następujące polecenie, aby ustawić domyślny katalog roboczy:
Set-Location C:\my\default\working\directory
Otwórz nowe okno PowerShell ... zmiany powinny zacząć obowiązywać.
powershell -File "myscript.ps1"
powershel -NoProfile -File "myscript.ps1"
Wypróbowałem powyższe odpowiedzi w systemie Windows Server 2016 bez powodzenia.
Ale stwierdziłem, że to podejście (powinno być takie samo dla Windows 10) działa dla mnie.
Gotowe!
W tym samym oknie dialogowym Właściwości możesz również zmienić wiele innych ustawień, takich jak czcionki, kolory, rozmiary i na karcie Skrót za pomocą przycisku Advanced. Możesz wybrać, czy ta sesja PowerShell ma być uruchamiana z uprawnieniami administratora.
Run as administrator
w .lnk
menu zaawansowanym. Wydaje się, że rozwiązanie jest tutaj stackoverflow.com/questions/31622469/ ...
Run as aministrator
pole wyboru w tę iz powrotem.
Prostszy sposób ustawienia katalogu domyślnego jest następujący:
Kliknij prawym przyciskiem myszy ikonę Windows PowerShell w menu Start i ponownie kliknij prawym przyciskiem myszy Windows PowerShell i wybierz Właściwości (nie Uruchom jako administrator, a nie Windows PowerShell ISE )
Umieszczenie Set-Location
w swoim profilu bezwarunkowo zmieni bieżący katalog roboczy, co może mieć niepożądane konsekwencje w odniesieniu do katalogu roboczego skryptów, które wykonujesz za pomocą funkcji „uruchom z PowerShell”.
Alternatywnym rozwiązaniem jest zmiana katalogu roboczego dla .lnk
plików na PowerShell, który zwykle znajduje się w %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell
. Kliknij łącze prawym przyciskiem myszy i zmień katalog roboczy z %HOMEDRIVE%%HOMEPATH%
na żądany katalog.
Run as administrator
w .lnk
menu zaawansowanym. Wydaje się, że rozwiązanie jest tutaj stackoverflow.com/questions/31622469/ ...
-NoProfile
opcji takiej jak powershell -NoProfile -File "myscript.ps1"
Wpisz to w PowerShell:
New-Item -path $profile -type file –force
Tworzy plik .ps1 w folderze PowerShell. Otwórz go i edytuj jako:
Set-location C:\files
Gotowe
Skorzystaj z tego łącza. To działa dobrze.
Zamiast bezwarunkowej zmiany katalogu roboczego, jak wspomniano w poprzednich odpowiedziach, możesz napisać prostą funkcję w profilu programu PowerShell, Set-Location
aby szybko zmienić katalog roboczy w razie potrzeby.
Sprawdź odpowiedź Jeremy'ego Danyowa, aby utworzyć / zmodyfikować profil PowerShell.
Dodaj funkcje do swojego profilu PowerShell:
function goto_this {set-location 'your\path\to\some\dir'}
function goto_that {set-location 'your\path to some\dir with space'}
Po prostu zmień nazwę funkcji i wskazany katalog. Używanie cudzysłowów na ścieżce jest obowiązkowe, jeśli zawiera spacje. Staram się zachować przedrostek, goto_
ponieważ pomaga zapamiętać nazwy funkcji.
Możesz zacząć pisać, goto_
a następnie nacisnąć TAB, aby przejść przez wszystkie dodane funkcje (pamiętaj, aby po dodaniu / zmodyfikowaniu funkcji uruchomić nowe okno PowerShell).
Używając tylko wiersza poleceń, jeśli plik już istnieje, zostanie do niego dołączony:
$(if (-Not (Test-Path ~\Documents\WindowsPowerShell\)){ mkdir ~\Documents\WindowsPowerShell\}) ; echo "Set-Location c:\THELOCATIONYOUWANT" >> ~\Documents\WindowsPowerShell\profile.ps1
W związku z tym wydaje się, że istnieje pewne zamieszanie dotyczące „katalogu roboczego” i „lokalizacji” programu PowerShell. To, co większość ludzi tutaj robi i mówi do zrobienia, to zmiana „lokalizacji” programu PowerShell. „Katalog roboczy” jest w rzeczywistości inny. Oto artykuł, który to wyjaśnia.
Dla tych, którzy nie chcą czytać artykułu: Otwórz PowerShell i wykorzystaj to, co powiedzieli inni Set-Location "C:\some\directory"
. Zwróć uwagę, że Twój „katalog roboczy” nadal jest miejscem, w którym otwarto program PowerShell. Albo "~"
czy "%SYSTEMROOT%\system32"
w zależności czy prowadził jako administrator lub nie. Aby sprawdzić katalog roboczy, użyj [Environment]::CurrentDirectory
.
Uwaga: w artykule autor mówi, aby sprawdzić „katalog roboczy” za pomocą tego polecenia:
\[Environment\]::CurrentDirectory
Nie jestem pewien, czy działa to ze starszymi wersjami PowerShell, ale z PowerShell 5 (i nowszymi) musisz użyć [Environment]::CurrentDirectory
.