目次
- はじめに
- PowerShellとコマンドプロンプトの違い
- PowerShellで一時的に変更する方法
- PowerShellで設定を保存して常に適用する方法
- よく使われるプロンプトのカスタマイズ例
- 現在地を確認する方法
- まとめ
はじめに
Zoomなどのオンライン会議で画面共有をする際に、ディレクトリパスが見えてしまうのは避けたいところです。
以前の記事で、Macのzshでターミナルのプロンプト(コマンド入力の準備ができていることを示す表示)をカスタマイズする方法を紹介しました。今回はその続編として、Windows環境でのPowerShellプロンプトのカスタマイズ方法をまとめます。
PowerShellとコマンドプロンプトの違い
WindowsにはPowerShell(より高機能なコマンドライン環境)とコマンドプロンプト(従来からあるシンプルなコマンドライン環境)という2つのコマンドライン環境があります。
この記事ではPowerShellでの設定方法を紹介します。コマンドプロンプトでのプロンプト変更はレジストリ(Windowsのシステム設定を保存する場所)の編集が必要で、初心者には難易度が高いため、PowerShellの使用をおすすめします。
PowerShellで一時的に変更する方法
まずは試しに、今開いているPowerShellウィンドウだけで表示を変更してみます。以下のコマンドを入力してください。
function prompt { "PS> " }
このコマンドを実行すると、プロンプトがPS>だけのシンプルな表示になります。カレントディレクトリ(現在作業しているフォルダの場所)が非表示になり、すっきりした見た目になります。
この方法は一時的な変更なので、PowerShellを閉じたり再起動したりすると元に戻ります。常に適用したい場合は、次のセクションで説明するプロファイルファイルの編集が必要です。
PowerShellで設定を保存して常に適用する方法
PowerShellを再起動しても設定を維持するには、プロファイル(PowerShell起動時に自動で読み込まれる設定ファイル)を編集します。
【プロファイルの場所を確認する】
まず、以下のコマンドでプロファイルファイルの場所を確認します。
$PROFILE
通常、以下のようなパスが表示されます。
C:\Users\username\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
【プロファイルが存在するか確認する】
プロファイルファイルが既に存在するかを確認します。
Test-Path $PROFILE
Trueと表示されればファイルが存在し、Falseと表示されれば存在しません。
【プロファイルを作成する(存在しない場合)】
ファイルが存在しない場合(Falseと出力された場合)は、以下のコマンドで作成します。
New-Item -Path $PROFILE -ItemType File -Force
このコマンドで、必要なフォルダも含めてプロファイルファイルが作成されます。
【プロファイルを編集する】
以下のコマンドでプロファイルファイルを開きます。
notepad $PROFILE
メモ帳が開くので、次のセクションで紹介するいずれかの設定を貼り付けてください。既に他の設定が書かれている場合は、その下に追加する形で問題ありません。
【保存して閉じる】
メモ帳で設定を追記したら、ファイル → 上書き保存を選択して保存し、メモ帳を閉じます。
【設定を反映させる】
最後に、以下のコマンドでプロファイルを読み込み直します。
. $PROFILE
これで、次回PowerShellを開いたときから新しいプロンプトが適用されます。
よく使われるプロンプトのカスタマイズ例
プロファイルに追記する設定のバリエーションをいくつか紹介します。自分の用途に合ったものを選んでください。
【完全にシンプルにする】
カレントディレクトリを含め、すべての情報を非表示にします。
function prompt { "PS> " }
表示例はPS>だけになります。
【現在のフォルダ名だけ表示する】
フルパスではなく、今いるフォルダの名前だけを表示します。
function prompt { "$(Split-Path -Leaf (Get-Location))> " }
表示例はproject>のようになります。C:\Users\username\Documents\projectにいても、projectだけが表示されます。
【ユーザー名と現在のフォルダ名を表示する】
自分が誰として作業しているかと、今いるフォルダを確認できるようにします。
function prompt { "$env:USERNAME $(Split-Path -Leaf (Get-Location))> " }
表示例はusername project>のようになります。
【時刻を含める】
コマンドを実行した時刻を記録したい場合に便利です。
function prompt { "[$(Get-Date -Format 'HH:mm:ss')] PS> " }
表示例は[14:30:45] PS>のようになります。
現在地を確認する方法
プロンプトからカレントディレクトリを非表示にすると、今どこにいるのかわからなくなることがあります。そんなときはpwdコマンド(現在のディレクトリのフルパスを表示するコマンド)を使用してください。
pwd
実行すると、以下のように現在の場所が表示されます。
Path
----
C:\Users\username\Documents\project
PowerShellではGet-Locationコマンドでも同じ結果が得られます。
Get-Location
このコマンドはいつでも使えるので、必要なときだけ確認できます。
まとめ
PowerShellのプロンプトは、function promptを定義することで自由にカスタマイズできます。画面共有時の情報漏洩を防ぎたいときや、シンプルな表示で作業に集中したいときに便利な設定です。
