LoginSignup
4
3

More than 5 years have passed since last update.

BashでいうところのPS1環境変数設定をPowerShellで

Last updated at Posted at 2016-03-20

PowerShellでコマンド入力中に、ディレクトリ名が長すぎて困る・・・(´・ω・`)

Powershellの青い画面でコマンドを入力していると、カレントディレクトリ名が長すぎてスクロールしなくちゃならないことがあって嫌でした。
BashでいうところのPS1の変更ができたら、カレントディレクトリの次の行で入力したら便利になるのですが・・・。

prompt関数

PS1の代わりに、prompt関数を定義しておくといいらしいです。
なお、この関数が文字列を返さない場合は、PS>がでるそうです。

例1

ログインユーザー名、現在時刻、カレントディレクトリ、その次の行に入力できる場所、とするには、次のようにします。

関数定義:

powershell
function prompt {
    Write-Host "$(whoami) $(get-date) " -BackgroundColor Blue -ForegroundColor White -NoNewline;
    Write-Host "$(pwd)" -BackgroundColor Yellow -ForegroundColor Blue;
}

出力結果:

vm-windows81\hiroshi 03/20/2016 17:16:37 C:\Users\hiroshi
PS>

例2

上記とあまり変わりませんが、PS>の場所に現在時刻を移動させた場合です。

関数定義:

powershell
function prompt {
    Write-Host "$(whoami) " -BackgroundColor Blue -ForegroundColor White -NoNewline;
    Write-Host "$(pwd)" -BackgroundColor Yellow -ForegroundColor Blue;
    return "$(get-date) > ";
}

出力結果:

vm-windows81\hiroshi C:\Users\hiroshi
03/20/2016 17:44:25 > 

この関数を書いた後に保存しておく場所

.bashrcでexportする代わりに、
%UserProfile%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 にこの関数定義を書いとくと、この設定が自動で反映されます。

最後に

bashの環境変数のPS1は、何の略なんですかね。PowerShellの略ではなさそうですが。調べたら、"Prompt statement"の略だそうです。
ややこしいですね。意地悪して、わかりにくく書いたわけではないです。

参考

4
3
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
3