如何将变量从 java 文件传递​​到批处理文件?

How to pass a variable from java file to a batch file?

我正在尝试将变量从 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 

我需要将 rootFolder 的值和文件名从 java 代码传递到批处理文件。 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");

还有更新批处理变量的其他想法吗?

根据 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();