如何将变量从java文件传递到批处理文件?
Posted
技术标签:
【中文标题】如何将变量从java文件传递到批处理文件?【英文标题】:How to pass a variable from java file to a batch file? 【发布时间】: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");
有没有其他想法来更新批处理变量?
【问题讨论】:
【参考方案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();
【讨论】:
以上是关于如何将变量从java文件传递到批处理文件?的主要内容,如果未能解决你的问题,请参考以下文章
将远程计算机名称变量从批处理文件传递到 hta 并在弹出窗口或 html 窗口中打印出值 [关闭]
如何将变量从 ViewController 类传递给其他结构?