2

之前有人问过一个几乎相同的问题。回复中对代码页给出了很好的解释,但并没有回答我脑海中的问题:cmd.exe启动时使用的代码页由什么控制?在我的系统上,它以某种方式发生了变化。在注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage 中有一项 OEMCP 设置为 437。这似乎是重新启动后 cmd.exe(如 chcp 所示)使用的 CP,但是后来发生了一些变化,它在新的 cmd.exe 窗口中变为 1252。如果我用 chcp 将其更改为 437,那只会影响当前的 cmd.exe。当我退出并重新启动 cmd.exe 时,chcp 在新窗口中显示 1252。什么控制cmd时使用的默认CP。exe启动了吗?它如何从注册表中的值更改?如何防止它被更改和/或将其更改回 437 以获得新的命令窗口?

4

2 回答 2

4

我的 Windows 系统中的默认代码页cmd.exe是 437,据我所知,这是在美国 (US) 和西欧销售的大多数 PC 硬件的默认 OEM 代码页。AutoRun您可以通过添加在一个或两个键下命名的字符串条目来更改此默认值:

HKEY_CURRENT_USER\Software\Microsoft\Command Processor

    和

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor

在 Windows 注册表中,如此MS Windows Server 2003 支持页面中所述。它描述了如何添加一个在这些键中的一个或两个下REG_SZ命名的字符串条目,其值包含您希望在启动时自动运行的命令。AutoRuncmd.exe

例如,要将代码页 1252 设为默认值,请创建一个以AutoRun导航到regedit.exe实用程序中的这些键之一命名的新字符串值,然后将其值设置为命令chcp 1252

虽然 MS 文章仅表明它适用于 Windows Server 2003,但该技术也适用于我测试过的 Win XP 系统,因此可能也适用于 Vista 和 Win 7。

于 2013-01-05T19:54:43.333 回答
1

如果Win+R并运行cmd.exe /D修复它,那么问题出在 cmd自动运行值...

于 2012-06-18T00:52:26.660 回答