Ustawienie $ HOME w PowerShell

29

Jak zmienić domyślny katalog domowy na „C: \ Users \ khornsby” za każdym razem, gdy otwieram PowerShell?

Korzystam z systemu Windows 7. Poniżej znajduje się informacja o stanie mojego środowiska.

Windows PowerShell
Prawa autorskie (C) 2009 Microsoft Corporation. Wszelkie prawa zastrzeżone.

PS P: \> cd ~
PS P: \>echo $HOME
P: \
PS P: \> HOME="C:\Users\khornsby"
Termin „HOME = C: \ Users \ khornsby” nie jest rozpoznawany jako nazwa polecenia cmdlet,
funkcja, plik skryptu lub program operacyjny. Sprawdź pisownię nazwy lub
jeśli ścieżka została uwzględniona, sprawdź, czy ścieżka jest poprawna i spróbuj ponownie.
W linii: 1 znak: 25
+ HOME = "C: \ Users \ khornsby" 

PS P: \> Set-Variable HOME "C:\Users\khornsby"
Set-Variable: Nie można nadpisać zmiennej HOME, ponieważ jest ona tylko do odczytu lub
stały.
W linii: 1 znak: 13
+ Zmienna zestawu 

PS P: \> dir env:home*

Nazwa Wartość
---- -----
STRONA GŁÓWNA \
HOMEDRIVE P:
HOMESHARE \\ fileserv \ khornsby $


PS P: \>
kzh
źródło
2
Jak Twój format postu? Podoba mi się sposób, w jaki zostało wpisane.
Jay Bazuzi
3
Użyłem <kbd>tagu.
kzh

Odpowiedzi:

27

Zmienna jest domyślnie tylko do odczytu, ale można ją usunąć za pomocą -Forceprzełącznika na Remove-Variable. Aby twoja zmiana była trwała w różnych sesjach, możesz utworzyć plik profilu, który jest podobny do .bashrc(dla bash w Linuksie), z wyjątkiem Powershell.

W katalogu Dokumenty (normalnie C:\Users\YOUR_USERNAME_HERE\documents) dla konta użytkownika utwórz folder WindowsPowerShell (o takiej właśnie nazwie), jeśli jeszcze nie istnieje. W folderze utwórz plik tekstowy o nazwie profile.ps1 ( upewnij się, że nie jest to profile.ps1.txt ).

W pliku umieść wszystko, co chcesz wykonać, po otwarciu programu PowerShell.

przykład:

Write-Host "Hi John, welcome back!"
Remove-Variable -Force HOME
Set-Variable HOME "C:\Users\khornsby"

wynik:

alternatywny tekst

John T.
źródło
1
Możesz także uruchomić skrypt przy uruchamianiu ze skrótu, wskazując na: %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -NoExit -ExecutionPolicy bypass -File C:\foo\profile.ps1
paradroid
1
Próbowałem tego i z powodzeniem zmienia wartość $ HOME. Ale „cd ~” nadal uparcie przełącza się na pierwotną lokalizację.
Weeble,
2
@ Weeble, zobacz moją odpowiedź na zastąpienie skrótu ~.
ulty4life
9

Aby rozwiązać problem @Weeble dotyczący ~skrótu:

$HOMEDRIVE = "C:\"
$HOMEPATH = "Users\" + $env:username

# Set and force overwrite of the $HOME variable
Set-Variable HOME "$HOMEDRIVE$HOMEPATH" -Force

# Set the "~" shortcut value for the FileSystem provider
(get-psprovider 'FileSystem').Home = $HOMEDRIVE + $HOMEPATH

Zobacz tutaj różnicę między ~ a $ HOME

ulty4life
źródło
1
warto dodać cd $HOMEna końcu, więc powłoka rozpocznie się w tym miejscu i będzie gotowa do użycia :)
Eliran Malka
5

Jeszcze łatwiej ... otwórz zaawansowane ustawienia systemu ...

 C:\> systempropertiesadvanced

Dodaj nową zmienną systemową o nazwie HOME ze ścieżką do swojego profilu

wprowadź opis zdjęcia tutaj

Uruchom ponownie eksploratora lub wyloguj się i zaloguj ponownie ...

PS C:\> $Env:home 
--- 
Eddie B.
źródło
3
To nie robi tego, o co pyta pytanie. Ustawia zmienną środowiskową $ env: HOME, a nie zmienną Powershell $ HOME. Zmienna Powershell $ HOME wydaje się pochodzić ze zmiennych środowiskowych $ env: HOMEDRIVE i $ env: HOMEPATH w momencie rozpoczęcia procesu Powershell. To $ HOME określa zachowanie „cd ~”.
Weeble,
2
Przepraszamy, to ostatnie stwierdzenie nie jest do końca prawdą. $ HOME i zachowanie „cd ~” wydają się pasować do wartości zmiennych środowiskowych HOMEDRIVE i HOMEPATH podczas uruchamiania procesu PowerShell. Późniejsza zmiana tych zmiennych / zmiennych środowiskowych wydaje się nie mieć wpływu na katalog wybrany przez „cd ~”.
Weeble,
Działa dla mnie dobrze .... Nie wiem, co robisz inaczej.
Eddie B,
3

Aby zmienić w systemie Windows, spróbuj wykonać następujące czynności:

  • Przypnij PowerShell do paska zadań.

  • Kliknij prawym przyciskiem myszy ikonę PowerShell na pasku zadań.

  • Kliknij prawym przyciskiem myszy „Windows PowerShell” i wybierz „Właściwości”.

  • W oknie „Właściwości” przejdź do zakładki „Skrót” i zmień pole „Rozpocznij w:” na żądany katalog początkowy. (Przykład:) .C:\Users\username\Desktop

  • Kliknij OK'.

  • Uruchom PowerShell z paska zadań.

    pasek zadań

    Okno właściwości

clarencebuttowski
źródło
nie działa po wybraniu opcji „Uruchom jako administrator”
devi
2

Możesz użyć, help about_profilesaby zobaczyć więcej szczegółów na ten temat. Nie zapomnij podpisać swojego skryptu.

Eduardo Daudt Flach
źródło
3
helpz jakiej aplikacji?
kzh
@kzh: PowerShell
paradroid