我想写一个批处理文件,想用java定义一个(abc.bat)的文件,然后想把一些批处理命令写入文件中,然后保存,可是我不知道用java怎么实现。
刚刚学java,很多地方不清楚,麻烦告知一下,谢谢!!!

解决方案 »

  1.   

    bat 文件其实就是文本文件,用 FileWriter 写入就可以了。详情参考 JDK 文档。
      

  2.   

    Runtime rn=Runtime.getRuntime(); 
    Process p=null; 
    try{ 
    FileWriter writer = new FileWriter(pathDoc + "open.bat");
    writer.write("@echo off");
    writer.write("\r\n");
    writer.write("winword \"" + pathDoc +table.getValueAt(row,0) +  "\"");
    writer.write("\r\n");
    writer.write("@echo on");
    writer.close();
    p=rn.exec("cmd /C " +pathDoc+"open.bat");
        
    }catch(Exception e1){ 
    //System.out.println("cmd /c start winword \"" + pathDoc +docList.getSelectedValue().toString()+"\"");
    } //pathDoc 是文件目录,你可以直接赋c:\
    供你参考
      

  3.   

    谢谢楼上几位对我的帮助,现在关于文件写入的写法大概知道了一下,可是还有个问题要麻烦你们一下:
    我希望通过遍历文件夹获取文件夹中的html文件,然后读取每一个html文件后,往那个批处理文件中写入一个语句,比如"tidy -gb2312 -asxml -output"+files+"<"+files+">"
    可是我不知道在哪个地方写入这个语句比较好,现在的写法出现的问题是,每次写入都会把之前的写入覆盖掉。
    public class Tidy{

         public void traverseFolder(File folder, File root, String indent, StringBuffer buf) {

          File[] folders = folder.listFiles(new FileFilter() {        public boolean accept(File pathname) {
      if (pathname.isDirectory()) {
          String name = pathname.getName().toLowerCase();
    if ("images".equals(name) || "xsl".equals(name)|| "image".equals(name) || "css".equals(name)) {
        return false;
       }
    return true;
          }
       return false;
      }

    });
    if (folders != null) {
       folders = new FileUtils().sort(folders);
           for (int i = 0; i < folders.length; i++) {
        traverseFolder(folders[i], root, indent + "\t", buf);
    }
                }
    File[] htmFile = FileUtils.getHTMFiles(folder);
        }

    } public class FileUtils {    public static File[] getHTMFiles(File folder) throws IOException{
    FileWriter tidy=new FileWriter("tidy.bat", true);
    try{
       File[] files = folder.listFiles(new FilenameFilter() {
          public boolean accept(File dir, String name) {
          String lowercaseName = name.toLowerCase();
          if (lowercaseName.endsWith(".htm") || lowercaseName.endsWith(".html")){
          return true;
         }
        return false;
       }

      });
      if (files != null && files.length >= 1) {
         for(int i=0;i<files.length;i++){
    tidy.write("tidy -gb2312 -asxml -output "+files[i]+" <"+files[i]+">\n");
         }
      tidy.close();
      }
       return null;
    }
    catch (IOException e) {
        e.printStackTrace();
    }
    return null;
    }这么写的结果是提示 Unhandled exception type IOException
    还有,应该把bat文件的写入写到什么地方才能正确的往tidy.bat文件里写入命令呢?
    BTW:帖子实在太长,累着大家眼了,实在是不好意思。:(
      

  4.   

    赞同    john_sheep(彩虹勇士(求求你们,把贴子结了吧.))