Abaixo estão alguns bons produtos de substituição de consoles que são mais fáceis de usar que o cmd.
Como comentado abaixo, desde o Windows 7, todos esses shells são apenas uma interface para o conhost.exe, até mesmo o powershell. Para obter detalhes, leia O que é conhost.exe e por que Está funcionando .
Portanto, os consoles abaixo apenas substituem a interface visual padrão para o conhost, que é o exibido pelo cmd, e são úteis apenas quando chamados diretamente como programas. Eles não podem ser invocados indiretamente, como quando um executável de console como o diskpart é executado, já que isso invocará conhost e o conhost tem sua própria interface de E / S e API.
Veja o que a Microsoft diz em
ConHost represents a permanent change in the way that console application I/O is handled. There is no registry key or group policy setting that can force Windows to revert back to “legacy mode” console behavior.
A conclusão é que, se você quiser substituir o console de maneira mais profunda do que substituir a interface cmd, então isso não é possível. A Microsoft escolheu esse design como uma medida de segurança e não voltará atrás.
A única maneira que posso pensar em mudar a maneira como o conhost está se comportando é definir um gancho de sistema global na API do conhost. Eu não sei se isso é possível e ninguém fez isso até agora (ou se eles não estão dizendo). Eu também não acredito que a Microsoft permitirá que você substitua um arquivo de sistema crucialmente importante como conhost.exe por uma versão hackeada.
Se for necessário substituir o cmd, que reside no system32 \ cmd.exe, é necessário apropriar-se do arquivo e renomeá-lo (cmd1.exe?), renomear o exe de substituição do console para cmd.exe e copiar para system32 juntamente com todos os arquivos necessários para que ele funcione. Isso pode causar problemas se o console de substituição não suportar todos os parâmetros que o cmd faz.
Outra abordagem que funciona para arquivos .bat é associar o novo console a eles. Para isso, é necessário editar a chave de registro HKEY_CLASSES_ROOT\batfile\shell\open\command
. Consulte este artigo para obter alguns detalhes.
Aqui está a lista de consoles: