我有Windows 7,Windows 8和Windows 10系统,它们的行为都相似。
当我在开始菜单中键入命令提示符并按Enter键时,会出现一个标题为“命令提示符”的窗口。我给它一个蓝色背景和一个绿色文本。当我在命令行中键入start,cmd或bat文件的名称时,它会打开一个标题为cmd的窗口,我给出了黑色和绿色文本的背景。似乎颜色存储但是......嗯......
当我在Windows 10的开始菜单中键入cmd时,标题为" cmd"出现,但它从“命令提示符”窗口中回忆起蓝色背景和绿色文本,但从该窗口键入cmd
会打开一个新的黑色和绿色样式。当我双击批处理文件时,它会打开一个标题为命令提示符的窗口,其中包含不同的字体和带有白色文本的黑色背景。当我输入command
时,它只打印DOS和版权标题,但start command
打开一个标题为COMMAND.COM的窗口,其中包含不同的字体和带有白色文本的黑色背景。
在屏幕上显示参数列表中键入cmd /?
时。其中一个是/ Q.它说它在新实例中关闭了echo。当我在命令提示符或cmd中键入cmd /Q
时,它会使用相同的标题替换窗口,但使用黑色和绿色配色方案,并且不会关闭回声。当我输入start cmd /q
时,会发生完全相同的事情,但是'启动cmd.exe / q'实际上会产生一个错误,指出/ Q不是有效的开关。
这实际上只是我面临的问题的一小部分,我甚至无法开始整理它。如果那里的一些老手知道命令提示的明显区域之间的所有细微差别,以及调用它们的方式,我会很感激那个人为我排序那个烂摊子。
答案 0 :(得分:9)
我会尽力消除一些困惑,但我不能做得很完美,因为微软已经确保无法彻底解决这些问题,和他们会改变每一个版本的Windows。因此,例如,我即将提供的一些信息可能不适用于Windows 8和Windows 10.但它确实适用于Windows 7。
"命令提示符"是Windows下控制台应用程序的正式名称。 " cmd.exe的" (或只是" cmd")是同一个应用程序的可执行二进制文件的名称。
Windows在HKEY_CURRENT_USER\Console
下的注册表中存储命令提示符的默认设置。当一个新的命令提示符打开时,windows会获取该命令提示符的窗口标题,并尝试查看HKEY_CURRENT_USER\Console\
下是否有一个具有该名称的子项。如果找到一个子键,它会从中读取值。如果找不到子项,则会读取它在HKEY_CURRENT_USER\Console
中找到的默认值。
例如,在我的系统上,存在HKEY_CURRENT_USER\Console\MySQL 5.6 Command Line Client - Unicode
密钥,很可能是因为MySQL安装程序创建了此密钥,因此它们的命令提示符与命令提示符的其他实例不同。当然,为了使其工作,启动其命令提示符的快捷方式必须指定" MySQL 5.6命令行客户端 - Unicode"作为命令提示符的窗口标题。
因此,如果您看到具有不同样式的命令提示,那可能是因为您在HKEY_CURRENT_USER\Console\
下有条目。事实上它似乎没有任何意义,这是因为所选的子项取决于命令提示符窗口的 title ,这可能因启动它而有所不同。
答案 1 :(得分:7)