如何将变量从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 窗口中打印出值 [关闭]

如何将变量从 awk 传递到 shell 命令?

Oracle 完全导出,排除而不使用 par 文件

如何将变量从 ViewController 类传递给其他结构?

如何以异步方式有效地将变量从 Matlab 传递到 GPU?

将变量从 Photoshop 传递到 Python