Oh-My-Posh
でいい感じにプロンプトをカスタマイズした環境で気になることはありませんが。
Windows Server
上などのカスタマイズされていないPowerShell
のプロンプトでは、下記画像の用にデフォルト表示としてPS カレントディレクトリ>
と表示されており、長いパス等を表示した際に見づらいと感じる事があるかと思います。
上記画像くらいのパス長だったらいいのですが、パス名が長くて見づらいときなどは。
下記のコマンドを実行するとプロンプトの表記を書き換え、パスを表示しないようにできます。
function prompt{}
実行すると上記画像のようにプロンプトにパス表示がなくなります。
なおプロセス中で実行した事設定は一時的な物となり、再起動すると元に戻ります。
これは組み込み関数であるprompt関数を編集した結果となりますが、本記事ではこのprompt関数についてみていきます。
ドキュメント
prompt関数って?
ドキュメントに記載がある通り、プロンプト表示をカスタマイズするための関数になります。
何もカスタマイズしていないデフォルトの状態では下記のように設定されています。
# Get-CommandコマンドレットでPrompt関数を取得して、ScriptBlockを表示
(Get-Command Prompt).ScriptBlock
"PS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1))"
のように定義されており。
分解してみると下記の要素が表示されている事がわかります。
- PS
- $executionContext.SessionState.Path.CurrentLocation
- $('>' * ($nestedPromptLevel + 1))
PSはPSという文字列を表示
$executionContext.SessionState.Path.CurrentLocation は現在のカレントディレクトリを表示
$('>' * ($nestedPromptLevel + 1)) は自動変数$nestedPromptLevel + 1 の数だけ>を表示
となっています。
冒頭でパス表示等を無効化したのは、この設定をブランクで上書して表示を無効化しています。
総評
ワンタイムでちょっとした作業をする際に、PowerShell
のプロンプトが見づらいと言った際に、さっと利用して表記を変更できると便利かと思います。
なおWindows専用のWindows Powershell
とクロスプラットフォーム対応のPowerShell 7
ともに同様となります。