4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PowerShellのprompt関数について

Last updated at Posted at 2022-11-26

Oh-My-Poshでいい感じにプロンプトをカスタマイズした環境で気になることはありませんが。
Windows Server上などのカスタマイズされていないPowerShellのプロンプトでは、下記画像の用にデフォルト表示としてPS カレントディレクトリ> と表示されており、長いパス等を表示した際に見づらいと感じる事があるかと思います。

image.png

上記画像くらいのパス長だったらいいのですが、パス名が長くて見づらいときなどは。
下記のコマンドを実行するとプロンプトの表記を書き換え、パスを表示しないようにできます。

function prompt{}

image.png

実行すると上記画像のようにプロンプトにパス表示がなくなります。
なおプロセス中で実行した事設定は一時的な物となり、再起動すると元に戻ります。

これは組み込み関数であるprompt関数を編集した結果となりますが、本記事ではこのprompt関数についてみていきます。

ドキュメント

プロンプトについて

prompt関数って?

プロンプトについて

ドキュメントに記載がある通り、プロンプト表示をカスタマイズするための関数になります。

何もカスタマイズしていないデフォルトの状態では下記のように設定されています。

# Get-CommandコマンドレットでPrompt関数を取得して、ScriptBlockを表示
(Get-Command Prompt).ScriptBlock

image.png

"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ともに同様となります。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?