Mengatur $ HOME di PowerShell

29

Bagaimana cara mengubah direktori home default saya menjadi "C: \ Users \ khornsby" untuk setiap kali saya membuka PowerShell?

Saya menjalankan Windows 7. Di bawah ini adalah info tentang keadaan lingkungan saya.

Windows PowerShell
Hak Cipta (C) 2009 Microsoft Corporation. Seluruh hak cipta.

PS P: \> cd ~
PS P: \>echo $HOME
P: \
PS P: \> HOME="C:\Users\khornsby"
Istilah 'HOME = C: \ Users \ khornsby' tidak dikenali sebagai nama cmdlet,
fungsi, file skrip, atau program yang dapat dioperasikan. Periksa ejaan nama, atau
jika jalur disertakan, verifikasi jalur itu benar dan coba lagi.
Pada baris: 1 char: 25
+ HOME = "C: \ Users \ khornsby" 

PS P: \> Set-Variable HOME "C:\Users\khornsby"
Set-Variable: Tidak dapat menimpa variabel HOME karena hanya baca atau
konstan.
Pada baris: 1 char: 13
+ Set-Variable 

PS P: \> dir env:home*

Nilai Nama
---- -----
HOMEPATH \
HOMEDRIVE P:
HOMESHARE \\ fileserv \ khornsby $


PS P: \>
kzh
sumber
2
Bagaimana Anda memformat posting Anda? Saya suka cara apa yang Anda ketik disorot.
Jay Bazuzi
3
Saya menggunakan <kbd>tag.
kzh

Jawaban:

27

Variabel hanya dibaca secara default, tetapi dapat dihapus dengan -Forceberalih ke Remove-Variable. Untuk membuat perubahan Anda terus-menerus di seluruh sesi, Anda dapat membuat file profil yang mirip .bashrc(Untuk bash di Linux) kecuali untuk Powershell.

Di direktori Dokumen Anda (biasanya C:\Users\YOUR_USERNAME_HERE\documents) untuk akun pengguna Anda, buat folder WindowsPowerShell (dinamai persis seperti itu) jika belum ada. Di dalam folder, buat file teks bernama profile.ps1 ( pastikan itu bukan profile.ps1.txt ).

Di dalam file, letakkan apa pun yang ingin Anda jalankan ketika Anda membuka Powershell.

contoh:

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

hasil:

teks alternatif

John T
sumber
1
Anda juga dapat menjalankan skrip saat startup dari pintasan, menunjuk ke: %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -NoExit -ExecutionPolicy bypass -File C:\foo\profile.ps1
paradroid
1
Saya mencoba ini, dan berhasil mengubah nilai $ HOME. Tapi "cd ~" masih dengan keras kepala beralih ke lokasi semula.
Weeble
2
@ Weeble, lihat jawaban saya untuk mengganti ~ pintasan.
ulty4life
9

Untuk mengatasi kekhawatiran @Weeble tentang ~pintasan:

$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

Lihat di sini untuk perbedaan antara ~ dan $ HOME

ulty4life
sumber
1
ada baiknya menambahkan cd $HOMEdi akhir, sehingga shell akan mulai di lokasi itu dan akan siap untuk digunakan :)
Eliran Malka
5

Lebih mudah ... membuka pengaturan sistem lanjut ...

 C:\> systempropertiesadvanced

Tambahkan variabel sistem baru bernama HOME dengan jalur ke profil Anda

masukkan deskripsi gambar di sini

Mulai ulang penjelajah atau keluar dan kembali ...

PS C:\> $Env:home 
--- 
Eddie B
sumber
3
Ini tidak melakukan apa yang ditanyakan. Ini menetapkan variabel lingkungan $ env: HOME, bukan variabel Powershell $ HOME. Variabel Powershell $ HOME tampaknya berasal dari variabel lingkungan $ env: HOMEDRIVE dan $ env: HOMEPATH pada saat proses Powershell dimulai. $ HOME yang menentukan perilaku "cd ~".
Weeble
2
Maaf, pernyataan terakhir itu tidak sepenuhnya benar. $ HOME dan perilaku "cd ~" keduanya tampak cocok dengan nilai-nilai variabel lingkungan HOMEDRIVE dan HOMEPATH ketika proses Powershell dimulai. Selanjutnya mengubah salah satu dari variabel / variabel lingkungan ini tampaknya tidak berpengaruh pada direktori yang dipilih oleh "cd ~".
Weeble
Bekerja dengan baik untuk saya .... Saya tidak tahu apa yang Anda lakukan secara berbeda.
Eddie B
3

Untuk mengubah dari dalam Windows, coba yang berikut ini:

  • Sematkan PowerShell ke bilah tugas.

  • Klik kanan ikon PowerShell di bilah tugas.

  • Klik kanan 'Windows PowerShell' dan pilih 'Properties'.

  • Dalam jendela 'Properti', buka tab 'Pintasan' dan ubah bidang 'Mulai di:' ke direktori awal yang Anda inginkan. (Contoh:) .C:\Users\username\Desktop

  • Klik 'OK'.

  • Luncurkan PowerShell dari bilah tugas.

    bilah tugas

    Jendela properti

clarencebuttowski
sumber
tidak berfungsi ketika pilih 'run as administrator'
devi
2

Anda dapat menggunakan help about_profilesuntuk melihat detail lebih lanjut tentang ini. Jangan lupa untuk menandatangani skrip Anda.

Eduardo Daudt Flach
sumber
3
helpdari aplikasi apa?
kzh
@ kzh: PowerShell
paradroid