回答:
あなたがしたいことは、プロンプトをカスタマイズすることです。
PowerShell 3.0以降のデフォルトのプロンプトは次のとおりです。
function prompt
{
"PS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) "
}
さて、Windowsの10 をサポートANSIエスケープコードのconhostでは、と24ビットカラーは 1703年以降でサポートされています。
ANSIエスケープコードのいずれかを使用するには、リテラルESC文字が必要です。これは、033進、またはbashで小数点以下27である、あなたは使います"\033"か"\e"。PowerShellには直接同等のシーケンスはありませんが、代わりに式を埋め込むことができます。"$([char]27)"
PowerShell Core "`e"では、代わりにエスケープシーケンスを使用できます。asherberのコメントに感謝します。
これは、たとえば、次のエスケープシーケンスを使用して、コードで背景色をシアンに設定できることを意味します46。
"$([char]27)[46m"
次のように使用できます:
echo "$([char]27)[46mColoured text"
読みやすくするために、変数を定義しましょう:
$ESC = [char]27
したがって、次を使用できます。
"$ESC[46m"
どこ$ESCリテラルESC文字は、ある[のparamリストの開始、および定義m終了を。
コマンドで使用する:
echo "$ESC[46mColoured text"
元の色設定を復元するには、0代わりにコードを使用します。
echo "$ESC[46mColoured text$ESC[0mUncoloured text"
基本的な16色のパレットに満足できない場合は、フォームで完全な24ビットカラーを使用できます。
"$ESC[48;2;<r>;<g>;<b>m"
<r>0〜255の赤<g>、緑、<b>青の10進数値はどこにありますか。"$ESC[48;2;255;0;123m"
詳細については、ドキュメントを参照してください。
実際、これはbashで行うこととまったく同じですが$ESC、\eorの代わりに(定義した後)使用する必要があります\033。
これらをまとめると、変更されたプロンプトでANSIカラーエスケープコードを使用して背景色を変更できます。
function prompt
{
$ESC = [char]27
"$ESC[46mPS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) $ESC[0m"
}
これをセッション間で保持したい場合は、プロファイルに追加します(など.bashrc)。でプロファイルへのパスを表示できます$profile。
1;37mは97m、両方とも「明るい白」を意味することに注意してください)
[char]27。これが以前のバージョンで追加されたかどうかはわかりません。