Java中的批处理命令

Java中的批处理命令,java,windows,batch-file,Java,Windows,Batch File,我有一个程序,可以打开一个命令行会话,其中插入2个单词。为了阅读这些单词,我之前使用了一个带有以下命令的批处理脚本:echo word1=%1 word2=%2>>C:\abc.txt。现在我必须用Java来实现这一点 您知道如何在Java ProcessBuilder中使用cmd.exe/C echo user=%1 pass=%2>>C:\abc.txt命令吗 我已经尝试过ProcessBuilder pb=new ProcessBuildercmd.exe,/C echo user='%1

我有一个程序,可以打开一个命令行会话,其中插入2个单词。为了阅读这些单词,我之前使用了一个带有以下命令的批处理脚本:echo word1=%1 word2=%2>>C:\abc.txt。现在我必须用Java来实现这一点

您知道如何在Java ProcessBuilder中使用cmd.exe/C echo user=%1 pass=%2>>C:\abc.txt命令吗

我已经尝试过ProcessBuilder pb=new ProcessBuildercmd.exe,/C echo user='%1'密码='%2'>\C:\\abc.txt\;但是没有成功

运行java应用程序后,abc.txt的内容是user='%1'password='%2',但应该是这样的:user=John password=Doe。提前谢谢你

调用java应用程序时,需要使用字符串[]args来访问命令行参数。它与Windows批处理文件中的不同。大概是这样的:

public static void main(String[] args) {
    ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/C echo user = '" + args[0] + "' password = '" + args[1] + "' >> \"C:\\abc.txt\"");
}
另一种方法是使用环境变量,在运行命令之前,请执行以下操作:

在执行jar/class文件之前定义环境变量: 设置用户=craig 设置密码=旗鱼 在类中查找属性: 公共静态无效字符串[]args{ 最终字符串user=System.getPropertyuser; 最终字符串密码=System.getPropertypassword; 最后一个字符串命令=/C echo user='+user+'password='+password+'>>\C:\\abc.txt\; ProcessBuilder pb=newProcessBuilderCmd.exe,命令; }
我不允许把args传递给那个类。我必须用java实现特定于命令行的命令。之后,我将导出jar文件中的类,并从批处理脚本运行它1和%2用于读取命令行会话中已存在的两个值。我希望现在更清楚了。@Jean.C我更新了我的答案,加入了一个使用环境变量的例子。这应该是可行的,因为你不能通过主方法传递参数。非常感谢你的时间,但不幸的是,这对我没有帮助。请看一看我更新的问题-也许现在更清楚了。是的,我想我明白你现在在做什么。看看这个问题:。您可能需要将命令放入一个批处理文件中,然后该批处理文件将指向参数,并将其作为参数传递给ProcessBuilder。