将 Java 中的变量传递给 Batch

Pass variable from Java to Batch

这个 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

批处理脚本

The following will create a directory only if that directory does not exist

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 目录不存在时才会创建该目录。

This is not best practice. Please read up on executing shell/batch scripts from Java