有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何经营一家公司。在java中暂停并继续的bat文件

我有一个处理多个csv文件的实用程序。实际情况是:

  1. 运行。蝙蝠档案
  2. 当文件1。已处理csv。bat文件暂停,并向我们显示验证输出的选项,然后按enter键继续执行file2。csv
  3. 像wise一样,它适用于多个文件

现在我需要自动执行这个过程。暂停bat文件并继续。目前,我可以执行。bat文件的格式如下:

String cmd = "cmd /c run.bat");
Process p = Runtime.getRuntime().exec(cmd);
p.waitFor();

请提供暂停和继续选项的帮助

编辑:在暂停时,我调用一个子线程来验证输出(当前正在自动验证输出)。如果输出为真,那么我需要继续。bat文件,否则,终止


共 (1) 个答案

  1. # 1 楼答案

    根据您的需要,这里有一个简短的POC。你可以修改它

    。蝙蝠锉

    &13; 第13部分,;
    @echo off
    @echo hi 
    @echo File 1 underReview
    @echo Press 0 to continue
    PAUSE
    @echo Done Review..
    PAUSE
    和#13;
    和#13;

    Java文件批处理自动输入

    public static void main(String[] args) throws IOException, InterruptedException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
        ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "BATInput.bat");
        File dir = new File("C:\\BatTest");
        pb.directory(dir);
        Process p = pb.start();
        InputStream out = p.getInputStream();   
        OutputStream outConsole=p.getOutputStream();
    
            BufferedReader in = new BufferedReader(new InputStreamReader(out));
            //BufferedWriter bout = new BufferedWriter(new OutputStreamWriter(outConsole)); 
            PrintWriter bout = new PrintWriter( p.getOutputStream() );
            String line = null;
    
            while ((line = in.readLine()) != null) {
                if (line.trim().length() > 0) {
                    System.out.println(line);
                    if(line.contains("Press 0"))
                    {
                        int i=Integer.parseInt(br.readLine());
                        bout.write(i);
                        bout.write("\n");
                        bout.flush();
                    }
                }
            }
    
            System.out.println("Executed Sucessfully");
    
    
    }
    

    输出Java控制台

    &13; 第13部分,;
    hi 
    File 1 underReview
    Press 0 to continue
    0
    Press any key to continue . . . 
    Done Review..
    Press any key to continue . . . 
    Executed Sucessfully
    和#13;
和#13;