1. BAT脚本中文路径乱码问题解析
每次看到BAT脚本里蹦出那些看不懂的方块字,我都想摔键盘——明明文件路径写对了,偏偏给你显示一堆乱码。这个问题困扰了无数用中文的开发者,特别是需要处理中文目录和文件的时候。乱码的根源其实很简单:Windows控制台和BAT脚本的编码没对上号。
Windows的命令提示符(cmd.exe)默认使用本地代码页,中文系统通常是GBK(代码页936)。而现代文本编辑器默认保存的BAT脚本往往是UTF-8编码。当UTF-8编码的脚本遇到GBK环境的控制台,就像两个说不同语言的人对话,自然会产生误解。我遇到过最典型的情况就是拷贝文件到中文目录时,系统提示"找不到文件",实际上就是因为路径中的中文变成了乱码。
2. 彻底解决方案:双管齐下的编码设置
2.1 修改BAT文件编码格式
解决这个问题的第一步,是把BAT脚本的编码改为UTF-8。别用Windows自带的记事本,那玩意儿对编码支持太差。我推荐用Notepad++或者VS Code这类专业编辑器:
- 用Notepad++打开你的BAT文件
- 查看底部状态栏,会显示当前编码(通常是ANSI或UTF-8无BOM)
- 点击"编码"菜单 → "转为UTF-8编码" → 保存文件
这里有个关键细节:一定要保存为UTF-8带BOM格式。BOM(Byte Order Mark)是个特殊的文件头,能帮助系统识别文件编码。虽然Unix系统通常不建议用BOM,但在Windows的BAT脚本中,BOM能确保编码被正确识别。
2.2 添加chcp 65001命令
光改文件编码还不够,还需要告诉控制台:"嘿,接下来用UTF-8对话"。这就是chcp 65001命令的作用——把控制台的代码页切换到UTF-8(65001是UTF-8的代码页编号)。
在你的BAT脚本最开头加上这行:
@echo off
chcp 65001 >nul


3147

被折叠的 条评论
为什么被折叠?



