Jawaban:
Anda harus menyesuaikan fungsi prompt di profil PowerShell Anda ( %userprofile%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
); mungkin kosong atau bahkan tidak ada jika Anda belum pernah memodifikasinya sebelumnya.
Buka profil Anda (misalnya, buka file yang disebutkan di atas atau saat di PowerShell, Notepad $profile
)
Tambahkan yang berikut ke profil Anda:
function prompt {
$p = Split-Path -leaf -path (Get-Location)
"$p> "
}
Simpan profil
Mulai ulang PowerShell
Opsional . Jika Anda mendapatkan pesan yang mengatakan Anda tidak diizinkan menjalankan skrip, maka Anda perlu menyalin / menempelkan baris ini di PowerShell:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
dan mulai kembali.
Kebijakan eksekusi Windows PowerShell memungkinkan Anda menentukan kondisi di mana Windows PowerShell memuat file konfigurasi dan menjalankan skrip.
Anda dapat menetapkan kebijakan eksekusi untuk komputer lokal, untuk pengguna saat ini, atau untuk sesi tertentu. Anda juga dapat menggunakan pengaturan Kebijakan Grup untuk menetapkan kebijakan eksekusi untuk komputer dan pengguna.
Sumber: Dokumentasi Microsoft
GetCurrentDirectory
. Ingatlah bahwa PowerShell tidak selalu berarti sistem file. Dengan menggunakan registry snap-in, saya bisa menggunakan cd hkcu:
dan sekarang prompt akan benar-benar mati.
$PWD
alih-alih menelepon Get-Location
. Misalnyafunction prompt { (Split-Path -Leaf $pwd) + '> ' }
prompt
dalam file profil Anda. Itu hanya harus dalam ruang lingkup sesi global. Defaultnya tampak setara dengan function prompt {"PS " + (Get-Location) + ">"}
, sementara function prompt {""}
memberikan yang sama dengan function prompt {"PS>"}
. Gunakan function prompt {" `b"}
untuk mendapatkan prompt kosong (setidaknya secara visual ...).
Sebagai catatan tambahan, saya tidak bisa melakukan perintah @ Synetech sampai saya pertama kali membuat $ profil.
Ketik $profile
dan tekan enter. Ini akan menampilkan jalur profil yang mengandalkan PowerShell, bahkan jika itu tidak ada (tidak untuk saya). Path saya berbeda dari yang diposkan @Synetech di atas.
>$profile
C:\Users\[username]\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Saya harus membuat folder WindowsPowerShell dan file Microsoft.PowerShell_profile.ps1.
catatan:
Jika Anda menggunakan posh-git (yang diinstal saat menggunakan desktop GitHub), skrip @ Synetech akan mengesampingkan prompt posh-git. Skrip prompt tambahan untuk posh-git di sini .
%userprofile%
meluas keC:\Users\[username]
$Env:userprofile
setara denganecho %userprofile%
Ubah prompt untuk menampilkan folder saat ini tanpa path lengkap dan lebih besar dari simbol di akhir:
Salah satu caranya adalah:
Function Prompt { "$( ( get-item $pwd ).Name )>" }
Atau:
Function Prompt { "$( Split-Path -leaf -path (Get-Location) )>" }
Atau:
Function Prompt { "$( ( Get-Location | Get-Item ).Name )>" }
\\myserver\my\path
.
Saya menemukan ini cukup mudah - menggabungkan jawaban @ Synetech dan info yang ditemukan di profil PowerShell . Karena saya seorang pemula untuk PS. Langkah saya (untuk vscode):
rekatkan
function prompt {
$p = Split-Path -leaf -path (Get-Location)
"$p> "
}
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser (pada prompt PS Anda, dari jawaban SuperUse)
muat ulang vscode
Jadi sebagian besar jawaban @ Synetech (terbalik) dengan sedikit untuk memulai dengan mudah - terutama langkah 2 membuatnya sangat mudah.
Baris tunggal di bawah ini berfungsi dengan baik untuk saya
(Dapatkan-Lokasi | Dapatkan-Barang). Nama
[System.IO.Directory]::GetCurrentDirectory()
tidak mewakili lokasi powershell saat ini, melainkan direktori proses proses, yang tidak selalu sama. Ganti denganGet-Location