Board logo

标题: [文本处理] chcp 65001之后无法切换回默认936 [打印本页]

作者: tigerpower    时间: 2018-10-6 10:46     标题: chcp 65001之后无法切换回默认936

本帖最后由 tigerpower 于 2018-10-6 11:05 编辑

本人尝试使用Far manager批量改名(使用7z版本的Far manager 配合Visual renaming files插件)
运行 -> cmd -> 运行far,发现界面字符无法对齐,然后在baidu搜索找到提示
运行 -> cmd -> chcp 65001 -> 运行far -> 改字体为Consolas
这时字符对齐了,Far使用关闭后,问题出现了
运行 -> cmd (此时默认还是65001代码页) -> chcp 936 -> 关闭 -> 再一次 运行 -> cmd (还是65001代码页)
开始 ->  点击命令行提示符的图标,这样打开的是936,但是 运行 -> cmd无法切换回默认936
请高手支招
作者: 523066680    时间: 2018-10-6 10:51

奇怪,我这里测试不会,是不是注册表还有地方修改
作者: tigerpower    时间: 2018-10-6 11:17

本帖最后由 tigerpower 于 2018-10-6 11:26 编辑

感谢楼上这位兄弟的测试,我搜索出答案
要修改注册表
HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe
把CodePage改为936
作者: /zhqsystem/zhq    时间: 2018-10-6 22:21

批处理运行
CHCP 936
PAUSE
不要关闭窗口,右键属性直接点确定就回到默认936了
作者: hlzj88    时间: 2018-10-7 12:08

我曾经试过加3秒延时后就好了。
作者: tigerpower    时间: 2018-10-7 16:52

回复 4# /zhqsystem/zhq

经测试,此方法有效,比修改注册表方便。
没想到PAUSE还有这个功能,谢谢!
作者: /zhqsystem/zhq    时间: 2018-10-7 19:00

回复 6# tigerpower
你理解错了,pause只是停住bat窗口,实际是需要更改操作界面默认语言代码,与pause没有直接关系,
作者: Batcher    时间: 2018-10-7 19:45

回复 6# tigerpower


    把 pause 改成 timeout /t 3 试试有效果吗?
作者: tigerpower    时间: 2018-10-7 20:01

本帖最后由 tigerpower 于 2018-10-7 20:23 编辑

回复 7# /zhqsystem/zhq
回复 8# Batcher

我又测试了几次,现在知道问题之所在了,pause不是关键,关键在于点击cmd窗口左上角C:\小图标(或右击cmd窗口标题栏),在弹出的菜单中点击“属性”,之后只要按过属性里的“确定”,代码页就会变成默认的。
因为切换为65001之后,更换Consolas字体时按过一次确定,所以65001变成了默认。
原来如此,现在算是搞清原理了。
作者: Batcher    时间: 2018-10-7 22:22

回复 9# tigerpower


    其实你在属性里面做修改,它也是修改的注册表




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2