PowerShell 6.2.3
デフォルトだとフルパスが表示されて階層が深くなるほど横に伸び邪魔になる。
とりあえずカレントディレクトリ名だけ表示したい。
PS C:\Users\******\Documents\Downloads>
PowerShellのプロンプトはprompt関数でカスタマイズ出来る。
PowerShell profileに書いておけば起動時に勝手に読み込まれる。
PowerShell profileのパスは$PROFILE環境変数で参照出来る。
PS C:\Users\******\Documents\Downloads> $PROFILE
C:\Users\******\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
code $PROFILE
とかでファイルを開いて以下を書く
Microsoft.PowerShell_profile.ps1
function prompt {
'PS ' + $(split-path . -Leaf) + '> '
}
split-pathは指定パスから特定の要素だけ取り出すコマンドレット、-Leafを指定でパスの末尾だけを取得出来る。
先頭の'PS 'は無くても良いけどPower Shellとわかるように一応つけている。
追記
改行パターン
function prompt {
"${pwd}
[PS]> "
}
or
function prompt {
$host.UI.WriteLine((Get-Location).Path);
$host.UI.Write("[PS]");
"> "
}
参考
-
About Prompt
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_prompts?view=powershell-6
-
About Profiles
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles?view=powershell-6
-
Split-Path
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/split-path?view=powershell-6
-
$host.UI.WriteLine
https://docs.microsoft.com/en-us/dotnet/api/system.management.automation.host.pshostuserinterface.writeline?view=powershellsdk-7.0.0#System_Management_Automation_Host_PSHostUserInterface_WriteLine_System_ConsoleColor_System_ConsoleColor_System_String_%20#%20https://docs.microsoft.com/en-us/dotnet/api/system.consolecolor?redirectedfrom=MSDN&view=netcore-3.1%20function%20prompt%20{%20$host.UI.Write(2,%200,%20%22[%22)%20$host.UI.Write(14,%200,%20%22${pwd}%22)%20$host.UI.Write(2,%200,%20%22]%22)%20$host.UI.Write(%22-%22)%20$host.UI.Write(2,%200,%20%22[%22)%20$host.UI.Write(10,%200,%20%22$(now)%22)%20$host.UI.WriteLine(2,%200,%20%22]%22)%20$host.UI.Write(%22[PS]%22)%20%22%3E%20%22%20}