![Podemos usar mais cores no script em lote?](https://rvso.com/image/1585769/Podemos%20usar%20mais%20cores%20no%20script%20em%20lote%3F.png)
Já temos 16 cores lá:
0 = Black 8 = Gray
1 = Blue 9 = Light Blue
2 = Green A = Light Green
3 = Aqua B = Light Aqua
4 = Red C = Light Red
5 = Purple D = Light Purple
6 = Yellow E = Light Yellow
7 = White F = Bright White
mas quero usar mais cores em um arquivo em lote
Qualquer ajuda?
Responder1
Posso usar mais das 16 cores em um arquivo em lote do Windows?
Não, já que a maioria dos aplicativos do Windows suporta apenas 16 cores.
No entanto, no Windows 10 Insiders Build #14931, o Windows Console foi atualizado para oferecer suporte a cores reais RGB de 24 bits.
Infelizmente, como mencionado acima, a maioria dos aplicativos do Windows (ainda) não pode usar esse aprimoramento.
No entanto, usando o Windows Subsystem for Linux (WSL), os scripts e ferramentas do Linux podem usar o novo suporte a cores de 24 bits do Console:
Uma das solicitações mais frequentes que recebemos é aumentar o número de cores que o Console do Windows pode suportar. Nada amamos mais do que oferecer os recursos que você pede!
Mas em vez de apenas adicionar mais algumas cores ou limitar nosso console a apenas 256 cores, no Windows 10 Insiders Build #14931,
atualizamos o console do Windows para oferecer suporte a cores reais RGB completas e gloriosas de 24 bits!
Na verdade, isso é um pouco complicado de demonstrar, já que a maioria dos aplicativos do Windows suporta no máximo 16 cores, enquanto o mundo Linux oferece suporte amplo a terminais de 256 cores há algum tempo, e as cores de 24 bits estão se tornando mais estabelecidas.
Graças à nossa capacidade de executar aplicativos e scripts Linux usando nosso novo ambiente Bash no Ubuntu no Windows no Windows Subsystem for Linux (WSL), podemos usar alguns scripts e ferramentas Linux para demonstrar o novo suporte a cores de 24 bits do Console:
Ainda não começamos a trabalhar na melhoria da página de propriedades do console para oferecer suporte aos novos recursos de renderização de cores do Console e não modificamos os mapeamentos de cores padrão do Windows; faremos melhorias aqui e em muitos, MUITOS outros recursos enfileirados em nossa lista de pendências em compilações futuras.
Responder2
Conhost.exe do Windows 10suportaCódigos de escape ANSIincluindo cores de 24 bits. Ver
No entanto, atualmente você precisaativar o suporte à sequência ANSIcriando um DWORD nomeado VirtualTerminalLevel
emHKEY_CURRENT_USER\Console
e defina seu valor como 1. Depois disso, se a cor de 24 bits for suportada no bash, você também poderá usar a cor ANSI de 24 bits em qualquer sessão do cmd ou do PowerShell. Abaixo está um exemplo de cmd
echo ESC[38;2;40;177;249m color: 40;177;249 ESC[0m
echo ESC[38;2;255;255;100m color: 255;255;100
echo ESC[48;2;200;0;200m color: 200;0;200 ESC[0m
Infelizmente não consigo colar o caractere de escape bruto aqui, então você precisará mudar ESC
para o caractere de escape real (ASCII27/0x1B) localmente. Aqui está o exemplo de saída:
No PowerShell , é mais fácil incorporar o caractere de escape como [char]0x1B
, ou sem resolver métodos para colar o caractere de escape bruto[char]27
`u{001B}
`e
echo "$([char]0x1B)[38;2;40;177;249m color: 40;177;249 $([char]0x1B)[0m"
echo "$([char]0x1B)[38;2;255;255;100m color: 255;255;100"
echo "$([char]0x1B)[48;2;200;0;200m color: 200;0;200 $([char]0x1B)[0m"
Você também pode verificardetectar um console compatível com ANSI no arquivo em lote do Windowse imprimir cores de 4 ou 24 bits dependendo do console atual. No PowerShell é muito mais simples, basta usar$Host.UI.SupportsVirtualTerminal
VerComo fazer o console win32 reconhecer sequências de escape ANSI/VT100?