【问题标题】:How to pass a variable from java file to a batch file?如何将变量从java文件传递到批处理文件?
【发布时间】:2021-11-08 10:36:00
【问题描述】:

我正在尝试将变量从 java 代码传递到批处理文件。 批处理文件的内容是-

@echo off 

set rootFolder=%1

set logFolder_Dir=logs

set outputLogsFolder_LocalDir=%rootFolder%\%logFolder_Dir%

set filename=%2

adb shell setprop persist.log.tag V

adb logcat com.harman.prometheusnav > %filename%.txt

pause 

我需要将 java 代码中的 rootFolder 和文件名的值传递给批处理文件。 运行和关闭批处理文件的 Java 代码是 -

public static void main(String[] args) throws InterruptedException, IOException {
    ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "logs.bat");
    File dir = new File("C:\\WORKPLACE\\NavSDK\\Prometheus\\Automation\\promta\\src\\test\\resources");
    pb.directory(dir);
    Process p = pb.start();
    Runtime rt = Runtime.getRuntime();
    rt.exec("taskkill /F /IM adb.exe /T");

有没有其他想法来更新批处理变量?

【问题讨论】:

    标签: java batch-file parameter-passing


    【解决方案1】:

    根据 ProcessBuilder 的 documentation,您只需将参数添加到列表末尾即可。

    public static void main(String[] args) throws InterruptedException, IOException {
        ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "logs.bat", "C:\RootFoolder", "FileName");
        File dir = new File("C:\\WORKPLACE\\NavSDK\\Prometheus\\Automation\\promta\\src\\test\\resources");
        pb.directory(dir);
        Process p = pb.start();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-19
      • 1970-01-01
      • 2015-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-09
      相关资源
      最近更新 更多