PowerShell'de $ HOME ayarı


29

Powershell'i her açtığımda varsayılan giriş dizinimi "C: \ Users \ khornsby" olarak nasıl değiştiririm?

Windows 7 kullanıyorum. Aşağıda ortamımın durumu hakkında bilgiler yer alıyor.

Windows PowerShell
Telif Hakkı (C) 2009 Microsoft Corporation. Tüm hakları Saklıdır.

PS P: \> cd ~
PS P: \>echo $HOME
P: \
PS P: \> HOME="C:\Users\khornsby"
'HOME = C: \ Users \ khornsby' terimi bir cmdlet'in adı olarak tanınmıyor,
işlev, komut dosyası veya çalıştırılabilir program. Adın yazılışını kontrol edin veya
bir yol varsa, yolun doğru olduğunu doğrulayın ve tekrar deneyin.
Satırda: 1 karakter: 25
+ HOME = "C: \ Users \ khornsby" 

PS P: \> Set-Variable HOME "C:\Users\khornsby"
Set-Variable: Salt değişken olduğundan HOME değişkeninin üzerine yazılamıyor veya
sabit.
Satırda: 1 karakter: 13
+ Set Değişkeni 

PS P: \> dir env:home*

İsim Değeri
---- -----
ANASAYFA \
ANASAYFA P:
HOMESHARE \\ fileserv \ khornsby $


PS P: \>

2
Yayınınızı nasıl biçimlendirdiniz? Yazdıklarının vurgulanmasını seviyorum.
Jay Bazuzi

3
<kbd>Etiketi kullandım .
kzh

Yanıtlar:


27

Değişken yalnızca varsayılan olarak okunur, ancak -ForceRemove-Variable (Anahtar Değişken) konumuna getirilerek kaldırılabilir . Değişikliklerinizi oturumlar arasında kalıcı kılmak .bashrciçin, Powershell dışında (Linux'ta bash için) benzer bir profil dosyası oluşturabilirsiniz .

Belgeler dizininizde (normalde C:\Users\YOUR_USERNAME_HERE\documents) kullanıcı hesabınız için, henüz mevcut değilse , bir WindowsPowerShell klasörü (tam olarak böyle adlandırılmış) oluşturun. Klasörün içinde profile.ps1 adlı bir metin dosyası oluşturun ( profile.ps1.txt olmadığından emin olun ).

Dosyanın içine Powershell'i açtığınızda yürütülmesini istediğiniz her şeyi yerleştirin.

örnek:

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

sonuç:

alt metin


1
Ayrıca betiğin başlangıçta bir kısayoldan çalıştırılmasını sağlayabilirsiniz: %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -NoExit -ExecutionPolicy bypass -File C:\foo\profile.ps1
paradroid

1
Bunu denedim ve başarıyla $ HOME'un değerini değiştirdi. Ancak "cd ~" inatla orijinal konumuna geçiyor.
Weeble

2
@ Weeble, ~ kısayolu geçersiz kılma konusundaki cevabımı görün.
ulty4life

9

@Weeble’ın ~kısayol hakkındaki endişesini gidermek için :

$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

~ Ve $ HOME arasındaki fark için buraya bakın


1
cd $HOMEsonunda eklemeye değer , bu yüzden kabuk o konumda başlayacak ve hepsi kullanıma hazır olacak :)
Eliran Malka

5

Daha da kolay ... gelişmiş sistem ayarlarını aç ...

 C:\> systempropertiesadvanced

Profilinize giden yolu ile HOME adlı yeni bir sistem değişkeni ekleyin

görüntü tanımını buraya girin

Gezgini yeniden başlatın veya oturumu kapatıp tekrar açın ...

PS C:\> $Env:home 
--- 

3
Bu, soruyu istediğini yapmaz. Bu, $ env: HOME ortam değişkenini ayarlar; Powershell değişkeni $ HOME, Powershell işleminin başladığı sırada $ env: HOMEDRIVE ve $ env: HOMEPATH ortam değişkenlerinden kaynaklanıyor gibi görünmektedir. "Cd ~" davranışını belirleyen $ HOME.
Weeble

2
Üzgünüz, bu son ifade pek doğru değil. $ HOME ve "cd ~" davranışı, Powershell işlemi başladığında HOMEDRIVE ve HOMEPATH ortam değişkenlerinin değerleriyle eşleşiyor gibi görünüyor. Daha sonra bu değişkenlerin / ortam değişkenlerinin herhangi birinin değiştirilmesinin "cd ~" tarafından seçilen dizini etkilemediği görülüyor.
Weeble

Benim için iyi çalışıyor .... Farklı ne yaptığını bilmiyorum.
Eddie B

3

Windows içinden değiştirmek için aşağıdakileri deneyin:

  • PowerShell'i görev çubuğuna sabitleyin.

  • Görev çubuğundaki PowerShell simgesine sağ tıklayın.

  • 'Windows PowerShell'i sağ tıklayın ve' Özellikler'i seçin.

  • 'Özellikler' penceresinde, 'Kısayol' sekmesine gidin ve 'Başlangıç:' alanını istediğiniz başlangıç ​​dizinine değiştirin. (Örnek: ).C:\Users\username\Desktop

  • 'Tamam'ı tıklayın.

  • PowerShell'i görev çubuğundan başlatın.

    Görev çubuğu

    Özellikler penceresi


'yönetici olarak çalıştır' seçiminde işe yaramaz
devi

2

help about_profilesBununla ilgili daha fazla ayrıntı görmek için kullanabilirsiniz . Komut dosyanızı imzalamayı unutmayın.


3
helphangi uygulamadan
kzh

@kzh: PowerShell
paradroid
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.