如何使用Java在.batch文件中传递参数

问题描述 投票:0回答:1

我正在尝试在Java中运行.batch文件,并在该文件中传递参数。但是没有成功。该代码段为:

ProcessBuilder processBuilder = new ProcessBuilder("metadata_extractor.bat",
            "C:\\Users\\xxxxxxxx\\Videos\\video", "123.m4v");

    try {
        Process process = processBuilder.start();
        StringBuilder output = new StringBuilder();
        BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
        String line;
        while ((line = reader.readLine()) != null) {
            output.append(line + "\n");
        }
        int exitVal = process.waitFor();
        if (exitVal == 0) {
            System.out.println(output);
            log.info("Output : " + output);
            System.exit(0);
        } else {
            // abnormal...

            log.info("Abnormal case ");
        }

    } catch (IOException e) {
        e.printStackTrace();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

这里我正在传递文件路径和文件名作为参数,但是它对我不起作用。如果可以的话,请帮助我。谢谢

java batch-file processbuilder
1个回答
0
投票

而不是ProcessBuilder processBuilder = new ProcessBuilder("metadata_extractor.bat", "C:\\Users\\xxxxxxxx\\Videos\\video", "123.m4v");

您可以尝试

ProcessBuilder processBuilder = new ProcessBuilder("C:\\Users\\xxxxxxxx\\Videos\\video\\metadata_extractor.bat");

© www.soinside.com 2019 - 2024. All rights reserved.