Je fais toujours mon invite à être cette couleur dans mon linux Ensuite, je peux trouver mon entrée dans la fenêtre de commande noire. Mais pouvons-nous faire la même couleur dans mon Powershell ?
Ce que vous voulez faire est de personnaliser l’invite .
L'invite par défaut dans PowerShell 3.0 et plus récent est:
function Prompt
{
"PS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) "
}
Désormais, Windows 10 prend en charge les codes d’échappement ANSI de son hôte, et La couleur 24 bits est supportée depuis 1703.
Pour utiliser l'un des codes d'échappement ANSI, nous avons besoin d'un caractère ESC littéral . C'est l'octal 033, ou le nombre décimal 27. Dans Bash, vous utiliseriez "\033"
ou "\e"
; Il n'y a pas de séquence équivalente directe dans PowerShell, mais vous pouvez à la place incorporer une expression: "$([char]27)"
Cela signifie que vous pouvez, par exemple, utiliser la séquence d'échappement suivante pour définir la couleur d'arrière-plan sur cyan avec le code 46
:
"$([char]27)[46m"
Qui peut être utilisé comme suit:
echo "$([char]27)[46mColoured text"
Pour rendre les choses plus lisibles, définissons une variable:
$ESC = [char]27
Nous pouvons donc utiliser:
"$ESC[46m"
Où $ESC
est le caractère ESC littéral, [
définit le début de la liste de paramètres et m
la fin.
En l'utilisant dans une commande:
echo "$ESC[46mColoured text"
Et pour restaurer les paramètres de couleur d'origine, nous utilisons plutôt le code 0
:
echo "$ESC[46mColoured text$ESC[0mUncoloured text"
Si vous n'êtes pas satisfait de la palette 16 couleurs de base, vous pouvez utiliser des couleurs 24 bits complètes avec le formulaire:
"$ESC[48;2;<r>;<g>;<b>m"
Où <r>
est la valeur décimale pour le rouge de 0 à 255, <g>
pour le vert et <b>
pour le bleu, par exemple. "$ESC[48;2;255;0;123m"
Veuillez vous référer à la documentation pour plus d'informations.
En fait, tout cela est directement équivalent à ce que vous feriez dans bash, sauf que vous devez utiliser $ESC
(après l'avoir défini) au lieu de \e
ou \033
.
En les combinant, nous pouvons utiliser les codes d'échappement de couleur ANSI dans une invite modifiée pour changer la couleur d'arrière-plan:
function Prompt
{
$ESC = [char]27
"$ESC[46mPS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) $ESC[0m"
}
Si vous souhaitez que cela persiste d'une session à l'autre, ajoutez-le à votre profil (par exemple, .bashrc
). Vous pouvez afficher le chemin d'accès à votre profil dans $profile
.