如何通过一个变量从java文件到批处理文件?



我试图将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和filename的值从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的文档,您应该简单地将参数添加到列表的末尾。

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

最新更新