当前位置:   article > 正文

【一键解决】bat批处理文件执行乱码的终极解决办法,只发一次!_bat乱码如何修改

bat乱码如何修改

在做项目的是否发现一个bat文件调试怎么都不对,而且也没有报错屏幕一闪就没了,命令行单独执行bat文件一点问题没有,真是非常奇怪灵异之极,查找了网上的解决办法,最终解决。首先说一些这是什么问题,

1、程序一闪在排除指令错误等人为错误的情况下,即便在程序中加了WaitForExit()都没用是因为,bat程序调用的动态库,动态库一执行就已经异步返回,WaitForExit马上结束,但是程序如果没有完成它还在跑,这个时候WaitForExit是没有任何作用的,这个时候要让他停下来就要用pause这个bat指令,相当于在bat执行过程中强制停止。这是一个小技巧可以记下。

2、程序退出才原因是由于中文路径乱码导致识别错误。资源加载不了导致指令错误直接退出。

问题找到后就好办了,网上查了一下解决方法,大概分为两大类,4种方法:其中

第一类是修改windows的系统参数,将系统环境调整到utf-8编码,重点是这里的系统编码一定要和程序字符串编码保持一致,否则改了也没用,

首先win键+R,输入regedit

方法1:修改命令号执行环境编码:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor

点击右键-新建,autorun 选择“字符串

 制作成reg文件代码如下:然后就可以一键运行
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe] "autorun "=sz:0000fde9

方法2:修改cmd系统模式环境编码:

HKEY_CURRENT_USER\Console\%SystemRoot%_SYSTEM32_cmd.exe

点击右键-新建,CodePage 选择“32位

 制作成reg文件代码如下:然后就可以一键运行

Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe] "CodePage"=dword:0000fde9

重量重方法是针对不同的乱码问题,通过手动命令行输入用,方法1,代码调用乱码使用,方法2,也就是说系统环境编码和cmd编码实际是可以不同并且互不影响。这种奇葩设定我也没得说了。

第二类是修改程序中字符串编码以及修改bat文件本身的编码格式,如果你是代码执行就修改字符串编码最简单的是改成UFT-8,

方法3:代码中添加字符串转码指令

string[] linesB = { "你好", "测试文件", "文件出现乱码了!"};
System.IO.File.WriteAllLines(XXX保存文件路径, linesB, Encoding.UTF8);

 

方法4:打开bat批处理文件将文件另存为时,选择uft-8编码

 

 

最后总结:如果是个别bat文件执行使用方法2和方式4,如果代码执行则使用方法1和方法3。这里强调一下,系统环境编码一定要和字符串编码一致

如果你觉得有用请点赞,让更多遇到困难的兄弟看到。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/73328
推荐阅读
相关标签
  

闽ICP备14008679号