java - 将变量从 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
解决方案
批处理脚本
以下将仅在该目录不存在时创建一个目录
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/批处理脚本
推荐阅读
- ios - 使用 swift 语言在 NSMutableURLRequest URL 中导致错误的日期字符串
- html - 当我单击另一个链接时,为什么我的导航栏没有关闭?
- sql - 为什么我们总是要关闭与数据库的连接?
- python - 如何同时播放音乐和打印文字?
- azure-databricks - Databricks 表是否支持事务隔离级别
- html - 为什么我的图像不会在 css 上水平对齐
- r - 编程函数:访问在函数中创建的数据帧的变量
- java - 从另一个类导入 int 变量会使应用程序崩溃
- c# - 使用 Automapper 映射嵌套集合
- c# - 如何继续从我的 Socket 读取数据以附加我的缓冲区