「profile.msh」→「profile.ps1」

PowerShellの「profile」

profile.mshをカスタマイズする - PowerShell Memoで「profile.msh」について紹介しましたが、PowerShellになって「profile.msh」は「profile.ps1」に名前が変更になっています。


ファイル名、パスをまとめると以下のようになります。

ファイル名 パス
Monad profile.msh <マイドキュメント>\MSH
PowerShell profile.ps1 <マイドキュメント>\PSConfiguration

※oka326さんの記事を見て少し修正しました。(2006/05/07 23:48)
参考:http://oka326.blogspot.com/2006/05/powershell-running-order-of-profiles.html

「prompt」の設定

「profile.ps1」の中で「prompt」ファンクションを記述することで、コマンドラインの先頭に表示する文字列(prompt)を設定できます。


私はpromptを以下のように設定しています。

function prompt
{
    $path = (get-location).Path
    $seprate = "\"
    $firstSeparate = $path.IndexOf($seprate)
    $lastSeparate  = $path.LastIndexOf($seprate)
    if ($firstSeparate -eq $lastSeparate)
    {
        "PS " + $path + "> "
    }
    else
    {
        "PS " + $path.substring(0,$firstSeparate+1) +  `
          ".." + $path.substring($lastSeparate) + "> "
    }
}

特徴としては、

  • カレントディレクトリの短縮表示(階層が3以上の時)
  • FileSystem以外のPSDriveにも対応

です。

ファイルシステムの表示例

カレントディレクトリが「C:\Program Files\Windows PowerShell」の場合

PS C:\..\Windows PowerShell>

レジストリの表示例

カレントディレクトリが「HKLM:\SOFTWARE\Microsoft\Windows」の場合

PS HKLM:\..\Windows>