解决BAT批处理改文件名时乱码问题,网上的方法都没有考虑到普通用户权限没办法修改注册表 您所在的位置:网站首页 文件名变成繁体字 解决BAT批处理改文件名时乱码问题,网上的方法都没有考虑到普通用户权限没办法修改注册表

解决BAT批处理改文件名时乱码问题,网上的方法都没有考虑到普通用户权限没办法修改注册表

2024-06-11 09:48| 来源: 网络整理| 查看: 265

工作经常要批量更改文件名,但办公电脑说实话我也搞不清是Win10简体还是繁体了,反正Office是繁体的,语言环境又好像是简体的。

所以我发现在运行BAT批处理文件的时候,中文的部分会产生乱码,如下图示意,

在cmd下面type这个文件看看,确实是乱码的 :

 

难怪运行后文件被改成乱码啦!我这里只是示意一个,某一次不小心批处理几千个文件,结果几千个文件乱码,当时心是多慌呀,撤销只能撤销一个!然后沮丧的开始一个个的复制粘贴把文件名改回来(⊙﹏⊙)b,就这样麻木的复制了二三十个后,想到用RPA的方法,但程式也没什么好思路来思考。好在后面冷静下来思考,把乱码文件名抓出来,再反向把文件名改回来,不然我得提桶走人O__O "…

后面找资料,发现原来是有办法实现不乱码的,网上方式有三,但我自己还自创了一种:

第一种是临时的:

只能作用于当前打开的窗口,关掉CMD后再开就无效了:  进入cmd窗口后,输入“chcp 65001”运行,执行完后,cmd的编码格式就是UTF-8,可看属性看到

 这时候type就能正常,当然,在这个cmd窗口下运行bat也能正常

但是,这是临时的,只要CMD界面不小心关闭了,就得记得重新输入“chcp 65001”运行,太不方便了!!

所以我们要找第二种永久的方法:修改注册表

在运行中输入"regedit",找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor 然后“右键-新建”,选择“字符串值”,“名称”列填写“autorun”, 数值数据填写“chcp65001”

这样就能永久使用把编码格式设置为UTF-8了!

第二种方式要修改HKEY_LOCAL_MACHINE必须要有管理员权限,而我办公电脑只有普通用户权限,OA管理员一般不理会我的需求,所以另找了下面第三种

第三种在HKEY_CURRENT_USER下做文章:

用普通账号进入regedit,在HKEY_CURRENT_USER\Console\下面,新建项%SystemRoot%_System32_cmd.exe,再新建DWORD32位值命名CodePage,同样设置十进制65001

 这个方式可以实现普通用户环境下,bat批处理文件是在UTF-8编码模式下运行的,而且不需要用到管理员权限,因为注册表HKEY_CURRENT_USER是可以由普通用户调整和保存的

第四种是我自创的,为了确保我的bat文件无论怎么运行都是正确的,我在bat开头第一行加入了这个chcp 65001的处理命令,从而完全避免了编码的问题!!!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有