前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【开发环境】Java 文件生成 Windows 系统 .bat 批处理文件并自动执行 ( 输出 GB2312 格式处理中文乱码 | \r\n换行 | Runtime 执行 Cmd 命令 )

【开发环境】Java 文件生成 Windows 系统 .bat 批处理文件并自动执行 ( 输出 GB2312 格式处理中文乱码 | \r\n换行 | Runtime 执行 Cmd 命令 )

作者头像
韩曙亮
发布2023-03-29 17:23:03
1.5K0
发布2023-03-29 17:23:03
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

Java 文件生成 Windows 系统 .bat 批处理文件并自动执行


1、生成 bat 脚本注意事项

在 Windows 中生成 bat 脚本时 , 必须输出 gb2312 编码的字符串 , 否则执行时会出现中文乱码 ;

另外还要注意 , WIndows 中的换行时 \r\n , 不要忽略这个问题 , 否则也会出错 ;

【错误记录】Windows 系统 bat 脚本报错 ( Java 生成 bat 脚本乱码处理 | 输出 GB2312 字符串 | Windows 中的换行时 \r\n )

2、Java 执行 Cmd 命令

使用 Runtime.getRuntime().exec 执行 Cmd 命令 ; 通过 BufferedReader 读取执行过程中的输出信息 ;

3、完整代码示例

代码语言:javascript
复制
import java.io.*;

public class Main {

    public static void main(String[] args) throws Exception {
        File bat = new File("cmd.bat");

        OutputStreamWriter osw =new OutputStreamWriter(
                (new FileOutputStream("cmd.bat")),"gb2312");
        osw.write("echo 生成 BAT 脚本\r\n");
        osw.write("echo 执行命令\r\n");
        osw.close();

        String ret = excuteCmdCommand("cmd.bat");
        System.out.println(ret);
    }

    /**
     * 执行 cmd 命令
     * @param cmdCommand
     * @return
     */
    public static String excuteCmdCommand(String cmdCommand)
    {
        StringBuilder stringBuilder = new StringBuilder();
        Process process = null;
        try {
            process = Runtime.getRuntime().exec(cmdCommand);
            BufferedReader bufferedReader = new BufferedReader(
                    new InputStreamReader(process.getInputStream(), "GBK"));
            String line = null;
            while((line=bufferedReader.readLine()) != null)
            {
                stringBuilder.append(line+"\n");
            }
            return stringBuilder.toString();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}

4、执行结果

执行上述程序 , 执行结果如下 :

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-09-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • Java 文件生成 Windows 系统 .bat 批处理文件并自动执行
    • 1、生成 bat 脚本注意事项
      • 2、Java 执行 Cmd 命令
        • 3、完整代码示例
          • 4、执行结果
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档