Por que meu prompt de comando está congelando no Windows 10?

146

Estou adicionando essa pergunta depois de passar um dia inteiro lutando com esse recurso incrivelmente frustrante do prompt de comando do Windows 10, o que me fez pensar que havia algo errado com o código do aplicativo do console. Espero que ajude alguém.

Problema: meu aplicativo de console parece parar de executar aleatoriamente. O que está acontecendo?

Shaun Rowan
fonte
2
Também é preciso Pressione Enter para continuar a execução do programa
wrivas

Respostas:

270

O problema acabou sendo um novo recurso do console do Windows 10. Sob a configuração padrão, sempre que você clica em uma janela de comando no Windows 10, ele interrompe imediatamente o processo do aplicativo quando tenta gravar no console. Quando isso acontece, a janela de comando entra no modo "seleção".

Você pode dizer que isso aconteceu porque ele prefixará a barra de título da janela de comando com a palavra "Selecionar":

janela de comando congelada

Para que seu programa volte a funcionar, você deve pressionar a tecla Escape ou clicar em outro lugar.

Para se livrar desse comportamento estranho, você pode desativar o modo QuickEdit:

desativar o modo QuickEdit

Shaun Rowan
fonte
26
Meu deus, obrigado! Lido com isso há um ano LOL. Também pode ser necessário desmarcar a opção, FECHAR o terminal e ABRIR novamente. Pelo menos é assim que funciona para mim (caso contrário ele irá auto ativá-lo novamente.)
user2875289
3
Eu tinha um trabalho de compilação de várias horas que continuava congelando por causa disso. Que bom que você postou uma solução!
Joel
2
Embora essa resposta tenha ajudado a desativar o congelamento ao clicar, a rolagem da barra lateral também o congela. O comportamento anterior era congelado enquanto a barra de rolagem era mantida e a saída era impressa quando você solta a barra de rolagem. Alguma idéia de como reverter para o antigo comportamento / descongelar? Esc ou enter não funciona.
quimnuss 16/05
6
esse é um recurso muito antigo para copiar e colar mais rapidamente. É só que o Windows 10 começa a habilitá-lo por padrão. Como desativar o botão direito do mouse para colar no PowerShell?
Phuclv 9/11
3
"Recurso não um bug" ser a ruína de usuários em todos os lugares
tschwab
20

O que eu gostaria de adicionar aqui à resposta de Shaun Rowan é que, para que funcione em todas as janelas do console, você precisa clicar em "Padrões", em vez de em "Propriedades", e fazer as alterações necessárias, conforme descrito nesta publicação .

iko79
fonte
0

Recentemente, enfrentei esse problema em que um dos usuários (que tinha o Quickedit configurado em seu prompt de comando) estava usando uma ferramenta que desenvolvi em Java e estava congelando a ferramenta enquanto a executava no prompt de comando.

Finalmente, o que resolveu o problema foi redirecionar o log dentro do script em lote para um arquivo, como mostrado abaixo:

@echo off
...
java.exe -jar mytool.jar

precisava ser atualizado para

java.exe -jar mytool.jar > log.txt
Priyanku
fonte
1
Para os desenvolvedores, esse segmento pode ser interessante, você pode desativar esse comportamento programaticamente usando SetConsoleMode(kernel32.dll).
Groo