Ça bouge! En tant que joueur, j'adore la fonction de tremblement de terre. Cependant, la console semble être verrouillée en haut de l'écran (même avec l'option verrouillée en haut désactivée). Merci
Ced
comment exécutez-vous cmd avec des onglets?
Mikey
@Mikey Quoi? Lisez d'abord la réponse.
Maximus
35
Aucune des réponses sur cette page ne mentionne un aspect important de la nouvelle prise en charge du contrôle de terminal ANSI qui a été ajouté à l' hôte de la console Windows 10 dans la version 16257 (et versions ultérieures). À savoir, c'est n̲o̲t̲ e̲n̲a̲b̲l̲e̲d̲ par défaut. À moins que le logiciel spécifique que vous utilisez ne permette le traitement ANSI en appelant l' API SetConsoleMode avec l' ENABLE_VIRTUAL_TERMINAL_PROCESSING (0x0400)indicateur, vous ne verrez pas les couleurs ou n'obtiendrez pas de traitement ANSI pour cette application.
Lors de l'écriture avec WriteFile ou WriteConsole , les caractères sont analysés pour le VT100 et les séquences de caractères de contrôle similaires qui contrôlent le mouvement du curseur, le mode couleur / police et d'autres opérations qui peuvent également être effectuées via les API de console existantes. Pour plus d'informations, voir Séquences de terminaux virtuels de console.
Je suppose que la raison pour laquelle les exemples montrés sur cette page fonctionnent est que, apparemment, la echocommande (ou peut-être la partie de traitement par lots de CMD.EXEou conhost) permet le traitement ANSI en appelant l'API que je viens de mentionner. Mais de nombreux autres outils ou exécutables qui écrivent stdinou stdoutpeuvent ne pas le faire, auquel cas vous ne verrez pas de couleur pour ces processus.
Heureusement, la valeur par défaut globale peut être modifiée de opt-in à opt-out . La clé de registre à HKEY_CURRENT_USER\Console\VirtualTerminalLeveldéfinit le comportement global par défaut pour le traitement des séquences d'échappement ANSI. Créez une DWORDclé (si nécessaire) et définissez sa valeur sur 1pour activer (ou 0désactiver) globalement le traitement ANSI par défaut.
Notez que ce paramètre de registre contrôle une valeur par défaut , ce qui signifie qu'il n'affecte que les applications de console qui ne manipulent pas explicitement le mode console en appelant SetConsoleMode(...). Il s'ensuit que, bien que la valeur de Registre puisse aider à activer ANSI pour les applications inconscientes en mode console , elle n'aura aucun effet sur toute application avertie en mode console qui (pour une raison quelconque) peut désactiver explicitement ANSI.
À partir de Windows 10 TH2 (v1511), conhost.exe(et, par extension, cmd.exe) prennent en charge les séquences d'échappement ANSI, en particulier les couleurs:
Le comportement des séquences suivantes est basé sur le VT100 et les technologies d'émulation de terminal dérivées, plus particulièrement l'émulateur de terminal xterm. Plus d'informations sur les séquences terminales peuvent être trouvées sur http://vt100.net et sur http://invisible-island.net/xterm/ctlseqs/ctlseqs.html .
Vous pouvez également modifier les couleurs par défaut à l'aide de Colortool . Les nouvelles installations de Windows 10 obtiendront des couleurs légèrement modifiées qui sont plus faciles à lire (en particulier le bleu sur le noir), mais les mises à jour conserveront les anciennes couleurs difficiles à lire.
10
Existe-t-il un émulateur de console pour Windows qui interprète la coloration ANSI?
Windows avant 10 - pas de prise en charge native des couleurs ANSI sur la console
Pour la version Windows inférieure à 10, la console de commande Windows ne prend pas en charge la coloration de sortie par défaut. Vous pouvez installer Cmder , ConEmu , ANSICON ou Mintty (utilisé par défaut dans GitBash et Cygwin) pour ajouter un support de coloration à votre console de commande Windows.
Windows 10 - Couleurs de ligne de commande
À partir de Windows 10, la console Windows prend en charge les séquences d'échappement ANSI et certaines couleurs par défaut.
Je ne suis pas sûr de la version exacte de Win10, mais elle est mentionnée ici: github.com/symfony/symfony/issues/19520 Sur l'ordinateur portable de ma société - Ver 1511 (OS Build 10586.753) - Je n'en avais pas besoin. Sur mon ordinateur personnel, j'ai dû utiliser ansicon, car les couleurs n'étaient pas activées par défaut.
geff_chang
4
Ils viennent d'introduire un drapeau, qui contrôle la sortie colorée et est faux par défaut. Voir wpdev.uservoice.com/forums/… ) --- Symfony utilise PHP.exe sur Windows, où le drapeau était désactivé, ils ont donc dû attendre un correctif, qui a atterri ici: github.com/php/php- src / pull / 2103 . Situation résolue. --- Pour cmd.exe, le drapeau est toujours vrai. C'est pourquoi vous avez un support de couleur sur la console.
Jens A. Koch
1
ces codes fonctionneraient-ils aussi dans un script shell sous Linux? ou est-ce fait d'une manière différente?
Aucune des réponses sur cette page ne mentionne un aspect important de la nouvelle prise en charge du contrôle de terminal ANSI qui a été ajouté à l' hôte de la console Windows 10 dans la version 16257 (et versions ultérieures). À savoir, c'est n̲o̲t̲ e̲n̲a̲b̲l̲e̲d̲ par défaut. À moins que le logiciel spécifique que vous utilisez ne permette le traitement ANSI en appelant l' API SetConsoleMode avec l'
ENABLE_VIRTUAL_TERMINAL_PROCESSING (0x0400)
indicateur, vous ne verrez pas les couleurs ou n'obtiendrez pas de traitement ANSI pour cette application.Je suppose que la raison pour laquelle les exemples montrés sur cette page fonctionnent est que, apparemment, la
echo
commande (ou peut-être la partie de traitement par lots deCMD.EXE
ouconhost
) permet le traitement ANSI en appelant l'API que je viens de mentionner. Mais de nombreux autres outils ou exécutables qui écriventstdin
oustdout
peuvent ne pas le faire, auquel cas vous ne verrez pas de couleur pour ces processus.Heureusement, la valeur par défaut globale peut être modifiée de opt-in à opt-out . La clé de registre à
HKEY_CURRENT_USER\Console\VirtualTerminalLevel
définit le comportement global par défaut pour le traitement des séquences d'échappement ANSI. Créez uneDWORD
clé (si nécessaire) et définissez sa valeur sur1
pour activer (ou0
désactiver) globalement le traitement ANSI par défaut.Notez que ce paramètre de registre contrôle une valeur par défaut , ce qui signifie qu'il n'affecte que les applications de console qui ne manipulent pas explicitement le mode console en appelant
SetConsoleMode(...)
. Il s'ensuit que, bien que la valeur de Registre puisse aider à activer ANSI pour les applications inconscientes en mode console , elle n'aura aucun effet sur toute application avertie en mode console qui (pour une raison quelconque) peut désactiver explicitement ANSI.la source
À partir de Windows 10 TH2 (v1511),
conhost.exe
(et, par extension,cmd.exe
) prennent en charge les séquences d'échappement ANSI, en particulier les couleurs:La page MSDN sur les séquences de terminaux virtuels de console explique quelles séquences sont prises en charge et comment les activer:
la source
Windows avant 10 - pas de prise en charge native des couleurs ANSI sur la console
Pour la version Windows inférieure à 10, la console de commande Windows ne prend pas en charge la coloration de sortie par défaut. Vous pouvez installer Cmder , ConEmu , ANSICON ou Mintty (utilisé par défaut dans GitBash et Cygwin) pour ajouter un support de coloration à votre console de commande Windows.
Windows 10 - Couleurs de ligne de commande
À partir de Windows 10, la console Windows prend en charge les séquences d'échappement ANSI et certaines couleurs par défaut.
Documentation MSDN
Démo
Commande par lots
Le a
win10colors.cmd
été écrit par Michele Locati :la source