PowerShell

カレントディレクトリをウィンドウタイトルに表示してプロンプトを短くする

More than 3 years have passed since last update.

ついでにdebianのbash風なプロンプトにします。
PowerShellのプロンプトはデフォルトで

PS C:\User\%ユーザ名%>

という形でPS %カレントディレクトリフルパス%>で表示されますが、深い階層のディレクトリに移動するとプロンプトが長くなりすぎるのでプロンプトの表示を変更します。

PS > notepad $profile

でプロファイルスクリプトを編集します。

プロンプトを定義するには

function prompt {
}

という感じでpromptファンクションを書けばいいようです。

さて、希望の形に変更するには

function prompt {
   #カレントディレクトリをウィンドウタイトルにする
   (Get-Host).UI.RawUI.WindowTitle = "Windows PowerShell " + $pwd

   #debianのbashのような感じで表示
   #カレントディレクトリを取得
   $idx = $pwd.ProviderPath.LastIndexof("\") + 1
   $cdn = $pwd.ProviderPath.Remove(0, $idx)
   #プロンプトをセット
   $env:UserName + "@" + $env:UserDomain + ":" + $cdn + "> "
}

という形で。
これでプロンプトは%ユーザ名%@%ホスト名%:%カレントディレクトリ%>の形で表示され、現在のフルパスはウィンドウタイトルにWindows PowerShell %フルパス%と表示されます。