为什么我的命令提示符在Windows 10上冻结?


146

我花了整整一天时间努力使用Windows 10命令提示符的这一令人沮丧的功能后添加了这个问题,这使我认为控制台应用程序代码出了点问题。希望对您有所帮助。

问题:我的控制台应用程序似乎随机停止运行。到底是怎么回事?


2
另外,您还需要按Enter才能继续运行该程序
wrivas

Answers:


270

该问题最终成为Windows 10控制台的一项新功能。在默认配置下,每当您在Windows 10中单击命令窗口时,它在尝试写入控制台时都会立即停止应用程序进程。发生这种情况时,命令窗口已进入“选择”模式。

您可以说这已经发生了,因为它将在命令窗口的标题栏上加上“ Select”字样:

冻结命令窗口

要使程序重新运行,您必须按Escape键或单击其他位置。

要摆脱这种奇怪的行为,可以禁用“快速编辑”模式:

禁用快速编辑模式


26
天哪,谢谢你!已经处理了一年大声笑。另外,您可能必须取消选择该选项,关闭终端,然后再次打开。至少这就是我的工作方式(否则它将再次自动启用它。)
user2875289

3
因此,我做了一个多小时的编译工作,因此会一直冻结。很高兴您发布了解决方案!
乔尔'18

2
尽管此答案有助于禁用单击冻结,但滚动侧栏也会使其冻结。以前的行为是在按住滚动条时冻结,并且在释放滚动条时打印了输出。任何想法如何还原到旧的行为/解冻它?ESC或Enter键不起作用。
quimnuss

6
这是一个非常老的功能,可以更快地复制和粘贴。只是Windows 10默认开始启用它。如何禁用右键单击以粘贴到PowerShell中?
phuclv

3
“功能不是错误”成为世界各地用户的祸根
tschwab

20

我想在此处添加Shaun Rowan的答案是,要使其在所有控制台窗口中都能正常工作,您必须单击“默认值”,而不是“属性”,然后在此处进行更改,如本博文所述


0

我最近遇到了这个问题,其中一个用户(在他的命令提示符下配置了Quickedit)正在使用我用Java开发的工具,并在从命令提示符运行该工具时冻结了该工具。

最后解决问题的是将批处理脚本中的日志记录重定向到一个文件,如下所示:

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

需要更新为

java.exe -jar mytool.jar > log.txt


1
对于开发人员来说,此线程可能很有趣,您可以使用SetConsoleMode(kernel32.dll)以编程方式禁用此行为。
Groo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.