Isso é demais! Como jogador, eu amo o recurso de terremoto. O console parece estar bloqueado na parte superior da tela (mesmo com a opção bloqueada na parte superior desativada). Obrigado
Ced
como você executa o cmd com abas?
187 Mikey
@Mikey What? Leia a resposta primeiro.
Maximus
35
Nenhuma das respostas nesta página menciona um aspecto importante do novo suporte ao ANSI Terminal Control que foi adicionado ao host do console do Windows 10 na compilação 16257 (e posterior). Ou seja, é não habilitado por padrão. A menos que o software específico que você está usando habilite o processamento ANSI chamando a API SetConsoleMode com o ENABLE_VIRTUAL_TERMINAL_PROCESSING (0x0400)sinalizador, você não verá cores ou obterá o processamento ANSI para esse aplicativo.
Ao escrever com WriteFile ou WriteConsole , os caracteres são analisados para o VT100 e sequências de caracteres de controle semelhantes que controlam o movimento do cursor, o modo de cor / fonte e outras operações que também podem ser executadas pelas APIs de console existentes. Para mais informações, consulte Sequências de terminais virtuais do console.
Suponho que a razão pela qual os exemplos mostrados nesta página funcionem é que, aparentemente, o echocomando (ou talvez a parte de processamento em lote de CMD.EXEou conhost) habilite o processamento ANSI chamando a API mencionada acima. Mas muitas outras ferramentas ou executáveis que escrevem stdinou stdoutpodem não fazer isso; nesse caso, você não verá cores para esses processos.
Felizmente, o padrão global pode ser alterado de opt-in para opt-out . A chave do registro em HKEY_CURRENT_USER\Console\VirtualTerminalLeveldefine o comportamento padrão global para o processamento de seqüências de escape ANSI. Crie uma DWORDchave (se necessário) e defina seu valor para 1ativar globalmente (ou 0desativar`) o processamento ANSI por padrão.
Observe que essa configuração do registro controla um padrão , o que significa que afeta apenas aplicativos de console que não manipulam explicitamente o modo do console chamando SetConsoleMode(...). Daqui resulta que, embora o valor do registro possa ajudar a habilitar o ANSI para aplicativos inconscientes no modo do console , ele não terá efeito em nenhum aplicativo habilitado para o modo do console que (por algum motivo) possa desabilitar explicitamente o ANSI.
O comportamento das seguintes seqüências é baseado nas tecnologias VT100 e emulador de terminal derivado, mais especificamente no emulador de terminal xterm. Mais informações sobre seqüências de terminais podem ser encontradas em http://vt100.net e em http://invisible-island.net/xterm/ctlseqs/ctlseqs.html .
Você também pode alterar as cores padrão usando o Colortool . As novas instalações do Windows 10 terão cores ligeiramente modificadas que são mais fáceis de ler (especialmente azul no preto), mas as atualizações manterão as cores antigas e difíceis de ler.
10
Existe algum emulador de console para Windows que interpreta a coloração ANSI?
Windows anterior a 10 - sem suporte nativo para cores ANSI no console
Para a versão do Windows abaixo de 10, o console de comando do Windows não suporta a coloração de saída por padrão. Você pode instalar Cmder , ConEmu , ANSICON ou Mintty (usado por padrão no GitBash e Cygwin) para adicionar suporte a cores no console de comando do Windows.
Windows 10 - Cores da linha de comando
A partir do Windows 10, o console do Windows suporta sequências de escape ANSI e algumas cores por padrão.
Não tenho certeza da versão exata do Win10, mas ela é mencionada aqui: github.com/symfony/symfony/issues/19520 No laptop da minha empresa - Ver 1511 (Compilação 10586.753 do SO) - não precisava. No meu PC doméstico, tive que usar o ansicon, porque as cores não estavam ativadas por padrão.
geff_chang
4
Eles acabaram de introduzir um sinalizador, que controla a saída colorida e é falso por padrão. Veja wpdev.uservoice.com/forums/… ) --- O Symfony está usando PHP.exe no Windows, onde a bandeira estava desativada, então eles tiveram que esperar por um patch, que chegou aqui: github.com/php/php- src / pull / 2103 . Situação resolvida. --- Para cmd.exe, o sinalizador sempre é verdadeiro. É por isso que você tem suporte de cores no console.
Jens A. Koch
1
esses códigos funcionariam em um script de shell no linux também? ou isso é feito de uma maneira diferente?
Nenhuma das respostas nesta página menciona um aspecto importante do novo suporte ao ANSI Terminal Control que foi adicionado ao host do console do Windows 10 na compilação 16257 (e posterior). Ou seja, é não habilitado por padrão. A menos que o software específico que você está usando habilite o processamento ANSI chamando a API SetConsoleMode com o
ENABLE_VIRTUAL_TERMINAL_PROCESSING (0x0400)
sinalizador, você não verá cores ou obterá o processamento ANSI para esse aplicativo.Suponho que a razão pela qual os exemplos mostrados nesta página funcionem é que, aparentemente, o
echo
comando (ou talvez a parte de processamento em lote deCMD.EXE
ouconhost
) habilite o processamento ANSI chamando a API mencionada acima. Mas muitas outras ferramentas ou executáveis que escrevemstdin
oustdout
podem não fazer isso; nesse caso, você não verá cores para esses processos.Felizmente, o padrão global pode ser alterado de opt-in para opt-out . A chave do registro em
HKEY_CURRENT_USER\Console\VirtualTerminalLevel
define o comportamento padrão global para o processamento de seqüências de escape ANSI. Crie umaDWORD
chave (se necessário) e defina seu valor para1
ativar globalmente (ou0
desativar`) o processamento ANSI por padrão.Observe que essa configuração do registro controla um padrão , o que significa que afeta apenas aplicativos de console que não manipulam explicitamente o modo do console chamando
SetConsoleMode(...)
. Daqui resulta que, embora o valor do registro possa ajudar a habilitar o ANSI para aplicativos inconscientes no modo do console , ele não terá efeito em nenhum aplicativo habilitado para o modo do console que (por algum motivo) possa desabilitar explicitamente o ANSI.fonte
A partir do Windows 10 TH2 (v1511),
conhost.exe
(e, por extensãocmd.exe
) , suporta ANSI Escape Sequences, em cores específicas:A página do MSDN sobre seqüências de terminais virtuais do console explica quais sequências são suportadas e como habilitá-las:
fonte
Windows anterior a 10 - sem suporte nativo para cores ANSI no console
Para a versão do Windows abaixo de 10, o console de comando do Windows não suporta a coloração de saída por padrão. Você pode instalar Cmder , ConEmu , ANSICON ou Mintty (usado por padrão no GitBash e Cygwin) para adicionar suporte a cores no console de comando do Windows.
Windows 10 - Cores da linha de comando
A partir do Windows 10, o console do Windows suporta sequências de escape ANSI e algumas cores por padrão.
Documentação MSDN
Demo
Comando em lote
O
win10colors.cmd
foi escrito por Michele Locati :fonte