Windows TIPS
[PowerShell] |
PowerShellのプロンプト文字列をカスタマイズする
|
 |
■ |
プロンプトとは、システムが入力待ち状態であることを示す文字列のことだ。 |
■ |
PowerShellのプロンプト文字列は、prompt関数によって定義されている。 |
■ |
プロンプト文字列をカスタマイズするには、プロファイルでprompt関数を上書きすればよい。 |
|
|
プロンプトとは、シェル画面上でシステムが入力待ちの状態にあることを示すために表示される文字列のことをいう。具体的にいうと、PowerShellのデフォルトのプロンプトは「PS <カレント・フォルダのパス>>」であり、PowerShellを起動した直後は、次のようにプロンプトが表示されていることが確認できるはずだ(この場合、カレント・フォルダが「C:\Documents and Settings\Yamada」であることを表している)。
 |
起動直後のPowerShellの表示 |
[スタート]メニューの[すべてのプログラム]-[Windows PowerShell 1.0]-[Windows PowerShell]を起動すると、このような画面が表示される。「PS C:\~」の部分がプロンプト文字列である。デフォルトではカレント・フォルダを表している。 |
|
 |
プロンプト文字列。先頭の「PS」はPowerShell、それ以降がカレント・フォルダ。 |
|
 |
文字が入力される部分を示すカーソル。 |
|
もちろん、通常はこのままでも何ら問題はないが、(例えば)パス階層が深くなってくると、プロンプト文字列も長くなってしまい、自分が入力したコマンドが見にくくなってしまうという問題がある。そんな場合には、プロンプト文字列を短くしたいと思うかもしれない。あるいは、そもそも用途によっては、カレント・フォルダのパスではなく、まったく異なる(例えば)現在時刻を表示したいということもあるだろう。
そこで本稿では、PowerShellでプロンプト文字列をカスタマイズする方法について紹介する。
具体的な方法を紹介する前にまず知っておいていただきたいのは、PowerShellのプロンプト文字列はprompt関数の戻り値によって決定されるという点だ。ちなみに、デフォルトで登録されているprompt関数の内容は、以下のとおりである。
function prompt {
"PS " + $(get-location) + "> "
} |
このように、「PS 」+「カレント・フォルダのパス」+「> 」の形式で文字列が生成されていることが分かるはずだ。つまり、このprompt関数を上書きすることで、プロンプト文字列をカスタマイズできるというわけだ。では、具体的なカスタマイズの手順を見ていくことにしよう。
注意 |
PowerShellを利用するには、あらかじめシステムにユーザー自身がインストールしておく必要があります。具体的なインストール方法については別稿の「PowerShellをインストールする」を参照してください。 |
手順1――テキスト・エディタでPowerShellのコードを入力する
まずはテキスト・エディタ(メモ帳でも何でもよい)を開き、以下のコードを入力してほしい。なお「#~」で始まる行は、コードの意味を解説するためのコメント部分なので、省略してもよい。コメントにはスクリプトの簡単な説明を入れておいた。
※ファイル:profile.ps1
function prompt() {
# カレント・フォルダのパスから末尾の要素のみを抽出
"[" + (Split-Path (Get-Location) -Leaf) + "] > "
}
|
|
※ サンプル・ファイルprofile.ps1をダウンロードするには、ここをクリックしてください。 |
このような関数は、(当然)PowerShell起動のたびに手動で実行するのは現実的ではない。そこでプロファイルとして登録しておくことにしよう(*)。プロファイルとして登録するには、ファイル名を「profile.ps1」とし(PowerShellのスクリプトでは、拡張子を「.ps1」とすること)、保存先のフォルダは「C:\WINDOWS\SYSTEM32\windowspowershell\v1.0」とする必要がある(ユーザー単位にプロファイルを区別したい場合には「C:\Documents and Settings\<ユーザー名>\My Documents\WindowsPowerShell」フォルダでも可)。
これにより、新たに定義されたprompt関数がPowerShell起動時に有効になる。
なお、もしもすでにprofile.ps1が保存先のフォルダに存在する場合には、元からあるファイルを消さないように、既存のファイルの末尾にリストの内容を追記してほしい。
手順2――プロファイルの設定内容を確認する
繰り返しであるが、profile.ps1の内容はPowerShellの起動時に自動的に実行されるので、特別な手続きは必要ない。試しに新たなシェルを起動してみよう。
 |
プロファイル登録後にPowerShellを起動したところ |
プロンプト文字列がカレント・フォルダの末尾のパス(例:「C:\Documents and Settings\Yamada」なら「Yamada」の部分)だけに変更されている。 |
|
 |
プロンプト文字列が短くなっている。表示されているのは、カレント・フォルダの末尾のパスの部分だけになっている。 |
|
 |
カレント・フォルダを「C:\Windows\SYSTEM32」にすると、プロンプトが“[SYSTEM32]”になっている。 |
|
このように、プロンプト文字列が「[<カレント・フォルダ末尾のパス>] >」の形式で表示されていれば成功だ。カレント・フォルダを変更して、プロンプト文字列も確かに変更されることを確認してほしい。
Windows Server Insider フォーラム 新着記事