首页 > 解决方案 > 将变量从 Java 传递到批处理

问题描述

这个 Java 程序打开一个批处理文件并传递字符串folderName

public class FolderCreator {

    public static void main(String[] args) {
        try{    
            Process p = Runtime.getRuntime().exec("C:/Documents/NameFolder.bat folderName");
            p.waitFor();
        }catch(Exception e) {
            System.out.println(e);
        }   
    }
}

这是 NameFolder.bat 文件。它将使用上面传递的 Java 变量的名称创建一个文件夹。

//What do I need to ad here?

if not exist "C:\Desktop\folderName\" mkdir C:\Desktop\folderName

我需要在批处理文件中添加什么?

编辑:

这有效

if not exist "C:\Desktop\%1\" mkdir C:\Desktop\%1

标签: javabatch-filebatch-rename

解决方案


批处理脚本

以下将仅在该目录不存在时创建一个目录

if not exist "C:\Users\%USERNAME%\Desktop\%1" (
  mkdir  "C:\Users\%USERNAME%\Desktop\%1"
)

假设您将其保存到文件 C:/Documents/NameFolder.bat 您只需使用完全相同的 Java 代码执行它

Process p = Runtime.getRuntime().exec("C:/Documents/NameFolder.bat folderName");

c:\Users\%USERNAME%\Desktop\folderName仅当该目录尚不存在时,这将创建一个目录。

这不是最佳做法。请阅读从 Java 执行 shell/批处理脚本


推荐阅读