• JSP/java 执行创建批处理文件,并执行批处理事务。


        protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
    
            InputStream in = null;
            InputStreamReader ir = null;
            List list = new ArrayList();
            String line = "";
    
            String msg = "";
    
            HttpSession session = req.getSession();
            String username = req.getParameter("username");
            String pwd = req.getParameter("pwd");
            // 获取网站的绝对路径
            String strDirPath = this.getServletConfig().getServletContext()
                    .getRealPath("/");
            
            // 随机数
            Random rd = new Random();
            int rdNum = rd.nextInt(1000);
    
            // 文件名
            String fileName = System.currentTimeMillis() + "_" + rdNum + ".bat";
    
            // 文件所在全路径
            String filePath = strDirPath + fileName;
            // 批处理文件的内容 username指用户登录名,pwd指密码
            String content = " Dsquery user -samid " + username
                    + " | dsmod user -pwd " + pwd;
    
            writeFile(filePath, content);
    
            try {
                Process p = Runtime.getRuntime().exec(filePath);
                in = p.getInputStream();
                ir = new InputStreamReader(in);
                BufferedReader br = new BufferedReader(ir);
                while ((line = br.readLine()) != null) {
                    list.add(line);
                }
                if (p.waitFor() != 0) {
                    msg = "0-批处理执行失败,请检查批处理文件是否正确!";
                } else {
                    msg = "1-批处理执行成功!";
                }
                p.destroy();
                Iterator it = list.iterator();
                line = "";
                while (it.hasNext()) {
                    line = line + (String) it.next();
                }
                it = null;
                br.close();
                br = null;
                ir.close();
                ir = null;
                in.close();
                in = null;
                p.destroy();
                p = null;
            } catch (IOException e) {
                msg = "2-io异常,请检查指定的批处理文件是否存在!";
            } catch (InterruptedException e) {
                msg = "3-中断异常!";
            } catch (IllegalArgumentException e) {
                msg = "4-命令为空!";
            } catch (Exception e) {
                msg = "5-未知异常!";
            }
    
            String successUrl = "ok.jsp?msg=" + msg + "&line=" + line;
            try {
                resp.sendRedirect(successUrl);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
        /*
         * 将内容写入文件
         */
        private void writeFile(String filePath, String content) {
            File file = new File(filePath);
            if (!file.exists()) {
                try {
                    file.createNewFile();
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    // e.printStackTrace();
                }
            }
            try {
                OutputStreamWriter write = new OutputStreamWriter(
                        new FileOutputStream(file), "Utf-8");
    
                BufferedWriter writer = new BufferedWriter(write);
                writer.write(content);
                writer.close();
                write.close();
    
            } catch (Exception e) {

    J2ee中执行创建批处理文件,并执行批处理事务。

        protected void doGet(HttpServletRequest req, HttpServletResponse resp) {

            InputStream in = null;
            InputStreamReader ir = null;
            List list = new ArrayList();
            String line = "";

            String msg = "";

            HttpSession session = req.getSession();
            String username = req.getParameter("username");
            String pwd = req.getParameter("pwd");
            // 获取网站的绝对路径
            String strDirPath = this.getServletConfig().getServletContext()
                    .getRealPath("/");
            
            // 随机数
            Random rd = new Random();
            int rdNum = rd.nextInt(1000);

            // 文件名
            String fileName = System.currentTimeMillis() + "_" + rdNum + ".bat";

            // 文件所在全路径
            String filePath = strDirPath + fileName;
            // 批处理文件的内容 username指用户登录名,pwd指密码
            String content = " Dsquery user -samid " + username
                    + " | dsmod user -pwd " + pwd;

            writeFile(filePath, content);

            try {
                Process p = Runtime.getRuntime().exec(filePath);
                in = p.getInputStream();
                ir = new InputStreamReader(in);
                BufferedReader br = new BufferedReader(ir);
                while ((line = br.readLine()) != null) {
                    list.add(line);
                }
                if (p.waitFor() != 0) {
                    msg = "0-批处理执行失败,请检查批处理文件是否正确!";
                } else {
                    msg = "1-批处理执行成功!";
                }
                p.destroy();
                Iterator it = list.iterator();
                line = "";
                while (it.hasNext()) {
                    line = line + (String) it.next();
                }
                it = null;
                br.close();
                br = null;
                ir.close();
                ir = null;
                in.close();
                in = null;
                p.destroy();
                p = null;
            } catch (IOException e) {
                msg = "2-io异常,请检查指定的批处理文件是否存在!";
            } catch (InterruptedException e) {
                msg = "3-中断异常!";
            } catch (IllegalArgumentException e) {
                msg = "4-命令为空!";
            } catch (Exception e) {
                msg = "5-未知异常!";
            }

            String successUrl = "ok.jsp?msg=" + msg + "&line=" + line;
            try {
                resp.sendRedirect(successUrl);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

        /*
         * 将内容写入文件
         */
        private void writeFile(String filePath, String content) {
            File file = new File(filePath);
            if (!file.exists()) {
                try {
                    file.createNewFile();
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    // e.printStackTrace();
                }
            }
            try {
                OutputStreamWriter write = new OutputStreamWriter(
                        new FileOutputStream(file), "Utf-8");

                BufferedWriter writer = new BufferedWriter(write);
                writer.write(content);
                writer.close();
                write.close();

            } catch (Exception e) {

  • 相关阅读:
    Sublime Text 3 安装插件管理 Package Control
    Sublime Text 2&3中输入法不跟随光标移动的问题的解决方法
    Centos 7 yum 安装php
    Centos 7 yum 安装Apache
    正则验证多个邮箱用分号隔开
    Linux下修改网卡IP、DNS和网关
    mysqldump when doing LOCK TABLES问题
    jQuery遍历json
    Yii中CDbCriteria常用方法
    Parse error: syntax error, unexpected T_PUBLIC in 问题解决
  • 原文地址:https://www.cnblogs.com/nidongde/p/5364041.html
Copyright © 2020-2023  润新知