私はいつも私のLinuxでプロンプトをこの色にしています その後、黒いコマンドウィンドウで入力を見つけることができます。しかし、Powershellで同じ色を作成できますか?
あなたがしたいのは、 プロンプト をカスタマイズすることです。
PowerShell 3.0以降のデフォルトのプロンプトは次のとおりです。
_function Prompt
{
"PS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) "
}
_
現在、Windows 10 supportsANSIエスケープコード がコンホストに含まれ、 24ビットカラー は1703以降サポートされています。
ANSIエスケープコードの1つを使用するには、リテラル ESC文字 が必要です。これは8進数の033または10進数の27です。Bashでは、_"\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文字、_[
_はパラメーターリストの開始を定義し、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までの赤の10進値、緑は_<g>
_、青は_<b>
_です。 _"$ESC[48;2;255;0;123m"
_
詳細は documentation を参照してください。
実際、これは、_$ESC
_または_\e
_の代わりに_\033
_(定義した後)を使用する必要があることを除いて、bashで行うこととまったく同じです。
これらをまとめると、変更されたプロンプトでANSIカラーエスケープコードを使用して、背景色を変更できます。
_function Prompt
{
$ESC = [char]27
"$ESC[46mPS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) $ESC[0m"
}
_
これをセッション全体で維持したい場合は、プロファイルに追加します(_.bashrc
_など)。プロファイルへのパスは_$profile
_で確認できます。