疑问标题:为什么Windows的命令行(cmd窗口)某些时候会卡住?
现象描述:程序命令行运行过程中被鼠标点击操作后,突然停止运行/输出(程序似乎被阻塞,比如连接数据库、程序运行日志...),按下 鼠标右键/回车键后 则又继续运行/输出。
问题分析:“命令行运行过程中被鼠标点击”操作其实是触发了命令行的‘快速编辑模式’。
注1:快速编辑模式 是一种很便捷的操作方式,左键选中,右键复制以及右键可从剪贴板粘贴内容。
注2:实测winserver2008默认是关闭快速编辑模式的,window10默认是开启快速编辑模式的。(其他版本的window未进行测试)
解决方式:
方式1:右键单击命令行标题栏 -> 属性 -> 选项 -> 编辑选项中 取消勾选快速编辑模式。 #仅当前命令行中生效
方式2:右键单击命令行标题栏 -> 默认值 -> 选项 -> 编辑选项中 取消勾选快速编辑模式。 #所有新命令行中生效
方式3:注册表中修改对应的值 (0表示关闭快速编辑模式,1表示开启)
reg add HKEY_CURRENT_USER\Console /v QuickEdit /t REG_DWORD /d 00000000 /f
reg add HKEY_CURRENT_USER\Console /v QuickEdit /t REG_DWORD /d 00000001 /f
方式4:手动打开注册表修改值也可以,命令行中输入regedit后即打开注册表编辑器,转到HKEY_CURRENT_USER\Console,将QuickEdit的值从1改成0进行关闭。
方式5:Java操作DOS命令进行查询[RuntimeUtil.execForStr("REG QUERY HKEY_CURRENT_USER\\Console /v QuickEdit")] 其他可参见 reg /? 获取帮助。