Ben her zaman benim linux bu renk olmak istemimi yapmak Sonra siyah komut penceresinde benim giriş bulabilirsiniz. Ama Powershell'imde aynı rengi yapabilir miyiz ?
Ben her zaman benim linux bu renk olmak istemimi yapmak Sonra siyah komut penceresinde benim giriş bulabilirsiniz. Ama Powershell'imde aynı rengi yapabilir miyiz ?
Yanıtlar:
Yapmak istediğiniz şey istemi özelleştirmektir .
PowerShell 3.0 ve daha yeni sürümlerde varsayılan bilgi istemi:
function prompt
{
"PS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) "
}
Şimdi, Windows 10 , ANSI kaçış kodlarını ana gövdesinde destekliyor ve 170 bit'ten beri 24 bit renk destekleniyor.
ANSI çıkış kodlarından birini kullanmak için, gerçek bir ESC karakterine ihtiyacımız var . Bu sekizli 033 veya ondalık 27'dir. Bash'de "\033"
veya "\e"
; PowerShell'de doğrudan eşdeğer bir sıra yoktur, ancak bunun yerine bir ifade yerleştirebilirsiniz:"$([char]27)"
PowerShell Core'da "`e"
bunun yerine çıkış sırasını kullanabilirsiniz . Asherber tarafından yapılan yorum için teşekkürler.
Bu, örneğin arka plan rengini kodla camgöbeği olarak ayarlamak için aşağıdaki çıkış sırasını kullanabileceğiniz anlamına gelir 46
:
"$([char]27)[46m"
Hangi gibi kullanılabilir:
echo "$([char]27)[46mColoured text"
İşleri daha okunabilir hale getirmek için bir değişken tanımlayalım:
$ESC = [char]27
Böylece kullanabiliriz:
"$ESC[46m"
$ESC
Değişmez ESC karakteri nerede , [
param listesinin başlangıcını ve m
sonunu tanımlar .
Bir komutta kullanma:
echo "$ESC[46mColoured text"
Orijinal renk ayarlarını geri yüklemek için 0
bunun yerine kodu kullanırız:
echo "$ESC[46mColoured text$ESC[0mUncoloured text"
Temel 16 renk paletinden memnun değilseniz, formla tam 24 bit renkleri kullanabilirsiniz:
"$ESC[48;2;<r>;<g>;<b>m"
<r>
0-255 arası kırmızı, <g>
yeşil ve <b>
mavi için ondalık değer nerede , ör."$ESC[48;2;255;0;123m"
Daha fazla bilgi için lütfen belgelere bakın .
Aslında, bunların hepsi bash'da yaptıklarınızla doğrudan eşdeğerdir, ancak veya $ESC
yerine (tanımladıktan sonra) kullanmanız gerekir .\e
\033
Bunları bir araya getirerek, arka plan rengini değiştirmek için ANSI renk kaçış kodlarını değiştirilmiş bir istemde kullanabiliriz:
function prompt
{
$ESC = [char]27
"$ESC[46mPS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) $ESC[0m"
}
Bunun oturumlar boyunca devam etmesini istiyorsanız profilinize ekleyin (beğen .bashrc
). İçindeki profilinizin yolunu görebilirsiniz $profile
.
1;37m
aynıdır 97m
"parlak beyaz" hem anlam,)
[char]27
. Bunun önceki sürümlerde eklenip eklenmediğinden emin değilim.