J’utilise l’applet de commande Write-Host
pour changer la couleur de mon invite et j’ai remarqué que la couleur DarkYellow
n’était pas affichée en jaune, mais en gris! Voici un test de toutes les couleurs
PS> 0..15 | %{ Write-Host "Hello, world!" -ForegroundColor $_ }
J’ai une liste de toutes les valeurs enum en utilisant une mauvaise valeur
PS> Write-Host "Hello, World!" -ForegroundColor foo
Noir, DarkBlue, DarkGreen, DarkCyan, DarkRed, DarkMagenta, DarkYellow, Gris, DarkGray, Bleu, Vert, Cyan, Rouge, Magenta, Jaune, Blanc
Et j’ai réalisé que cette liste de “couleurs de la console” correspond en quelque sorte aux parameters de cette fenêtre de console / raccourci, non? Donc, DarkYellow
serait ce 7ème dans et il a l’air gris.
Quelle est la connexion entre ForegroundColor
, System.ConsoleColor
et ces parameters de raccourci de console? Pourquoi le jaune foncé s’affiche-t-il en gris “hors de la boîte”? Devrais-je le changer? Est-ce que cela changera chaque console de mon système ou simplement ce raccourci?
Pourquoi les consoles sont-elles si fines sur Windows?
Je suis sur Windows 7 Pro SP1 64 bits et je lance le raccourci “Windows PowerShell” depuis le menu Démarrer.
Le blog de Lee Holmes, Noble Blue de PowerShell , en parle un peu, mais n’explique pas vraiment pourquoi DarkYellow a été modifié. Très probablement, le DarkYellow par défaut était illisible avec le fond bleu.
Comme vous l’avez probablement compris – System.ConsoleColor est légèrement mal nommé car il ne spécifie pas de couleur, il spécifie un index dans une table de couleurs qui peut être modifiée par des raccourcis. Ceci est malheureusement une limitation du sous-système de la console.
Si vous modifiez le raccourci PowerShell.lnk, vous ne modifiez les couleurs que pour vous-même et uniquement lorsque vous démarrez PowerShell à partir de ce lien. Si vous utilisez Start | Exécutez, ou lancez cmd, puis exécutez PowerShell à partir de cmd, vous obtiendrez des parameters différents.
Le blog de Lee devrait vous donner suffisamment d’indices pour obtenir le comportement que vous préférez.
Je n’ai pas les réponses exactes, mais j’ai quelque chose comme ça! J’ai fait des recherches (merci, Jason Shirk) et constaté que System.ConsoleColor
est juste un index dans la table de couleurs, qui doit être représenté par ceci
La documentation mentionne que DarkYellow
est supposé être ” ocre ” (RVB: 204, 119, 34).
| DarkYellow | The color dark yellow (ochre). |
Choisissez “Défaut” dans le menu de la fenêtre en haut à gauche de l’application et vous verrez le générique “Propriétés de la console Windows” (comme ci-dessus), qui modifiera toute fenêtre de type ConsoleWindowClass
.
Choisissez l’option “Texte d’écran” et vous remarquerez qu’il est configuré pour utiliser la valeur dans l’ DarkYellow
de DarkYellow
. Je ne sais pas pourquoi ils n’ont pas utilisé Gray
ou DarkGray
juste à côté! Cliquez sur la 7ème case (l’index pour DarkYellow
) et changez-la en valeur RVB. Ensuite, définissez le “Texte d’écran” sur Gray
ou DarkGray
(sauf si vous voulez vraiment un texte de premier plan ocre par défaut).
Toutes vos consoles Invite de commandes, PowerShell et Git Bash (mingw) seront modifiées (les miennes étaient).
J’ai eu un petit problème avec l’invite PowerShell dans la boîte de dialog “Exécuter”. Il a fallu les couleurs, mais pas certains de mes autres parameters (taille physique et taille du tampon, etc.). J’ai fini par utiliser scoop
pour installer concfg
PS> scoop install concfg PS> scoop install sudo
et exporté mes bons parameters de console
PS> concfg export > ~\.consolerc
et les a importés dans mon message incohérent avec des préjugés (vous pouvez utiliser sudo
, également à partir de scoop, ou simplement lancer une invite d’administration)
PS> sudo concfg import ~\.consolerc
Et, en fait, concfg semblait exporter tout, les valeurs de la table de couleurs et les sélections! Voici un dump partiel de ma configuration (les parties de couleur)
{ "popup_colors": "cyan,white", "dark_gray": "#808080", "screen_colors": "gray,dark_magenta", "dark_green": "#008000", "blue": "#0000ff", "dark_yellow": "#cc7722", "red": "#ff0000", "magenta": "#ff00ff", "dark_red": "#800000", "yellow": "#ffff00", "dark_magenta": "#012456", "cyan": "#00ffff", "green": "#00ff00", "dark_blue": "#000080", "gray": "#c0c0c0", "white": "#ffffff", "black": "#000000", "dark_cyan": "#008080" }