回答:
あなたがしたいことは、プロンプトをカスタマイズすることです。
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
、\e
orの代わりに(定義した後)使用する必要があります\033
。
これらをまとめると、変更されたプロンプトでANSIカラーエスケープコードを使用して背景色を変更できます。
function prompt
{
$ESC = [char]27
"$ESC[46mPS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) $ESC[0m"
}
これをセッション間で保持したい場合は、プロファイルに追加します(など.bashrc
)。でプロファイルへのパスを表示できます$profile
。
1;37m
は97m
、両方とも「明るい白」を意味することに注意してください)
[char]27
。これが以前のバージョンで追加されたかどうかはわかりません。