シェルの色を定期的に台無しにするプログラムがあるため、この関数を powershell プロファイルに追加しました。
$DefaultForeground = (Get-Host).UI.RawUI.ForegroundColor
$DefaultBackground = (Get-Host).UI.RawUI.BackgroundColor
function SetColors
{
Param
(
[string]$Foreground = "",
[string]$Background = ""
)
$ValidColors = "black","blue","cyan","darkblue" ,"darkcyan","darkgray",
"darkgreen","darkmagenta","darkred","darkyellow","gray","green",
"magenta","red","white","yellow";
$Foreground = $Foreground.ToLower()
$Background = $Background.ToLower()
if ( $Foreground -eq "" )
{
$Foreground = $DefaultForeground
}
if ( $Background -eq "" )
{
$Background = $DefaultBackground
}
if ( $ValidColors -contains $Foreground -and
$ValidColors -contains $Background )
{
$a = (Get-Host).UI.RawUI
$a.ForegroundColor = $Foreground
$a.BackgroundColor = $Background
}
else
{
write-host "Foreground/Background Colors must be one of the following:"
$ValidColors
}
}
set-alias set-colors SetColors
いくつかのメモ:
「$DefaultCololrs = (Get-Host).UI.RawUI」は、オブジェクトの実際のコピーよりも多くのポインタ型オブジェクトを作成します。これは、後で別の変数を"(Get-Host).UI.RawUI"に設定して変更すると、 $DefaultColors も変更されることを意味します (これが、ここでそれらを文字列としてコピーした理由です)。
他の色を (16 進コードを使用して) 設定しようとしましたが、プロファイル スクリプトで 16 進値を使用して Powershell の色を設定することを見つけました(私はまだ試していません。レジストリ、およびデフォルトの色のリストで十分なようです)。
また、次のドキュメントも見つけました: https://technet.microsoft.com/en-us/library/ff406264.aspx、後で「grep」コマンドを変更する方法を理解するために使用する必要がある場合があります (現在、エイリアスが付けられています)文字列を選択する)