gpt4 book ai didi

java - 如何使用 Java 中的 ProcessBuilder 将字符串写入 cmd 提示符?

转载 作者:行者123 更新时间:2023-12-02 09:50:12 25 4
gpt4 key购买 nike

我有一个批处理 (.bat) 程序,要求该用户提供主机名和密码。 (两个字段)我正在使用一个单独的 Java 应用程序来收集以自动执行此任务,因此我需要它在脚本中一次输入多个主机名。然而,我很难使用 ProcessBuilder 来实现这个目标。请看下面的代码:

我的这段代码仅将输入和输出重定向到java进程。但是,我只想写信给cmd。如果有什么办法请告诉我。谢谢

import java.io.IOException;

public class Main {
public static void main(String[] args) throws InterruptedException,
IOException {
ProcessBuilder pb = new ProcessBuilder("cmd" ," /k d: && cd DATA\\Virtualization Scripts\\EMC ESXi Grab && Script_Run");
//inherit IO
pb.inheritIO();
Process process = pb.start();
process.waitFor();
}
}

最佳答案

@Tharriott,根据我们的讨论,首先您必须像这样修改一下批处理脚本。我在下面提供了代码。

@ECHO OFF 
set host=%1
set password=%2

echo Host Name : %host%
echo Password : %password%

"D:\UPSDATA\Virtualization Scripts\EMC ESXi Grab\EMC-ESXi-GRAB-1.3.10\emcgrab.exe" -host %host% -vmsupport -user root -password %password% -case 00000000 -legal -customer UPS -party 00000 -contact user -phone NA -email NA

exit

假设批处理脚本的名称是 emc-grab.bat

现在您必须像这样运行上面的批处理文件。

:/emc-grab.bat

一个例子是这样的

D:/test/emc-grab.bat abcd.dellemc.com pa$$word99

现在下一步是什么?

在您的 java gui 程序中,捕获主机名和密码,然后在 processbuilder 类中,传递完整的命令以及文件名、主机名和密码。

我在下面提供了代码片段。

String hostNameAndPassword = "captured Host Name"+" "+"captured password";
ProcessBuilder pb = new ProcessBuilder("cmd" ,"some path:/emc-grab.bat "+hostNameAndPassword);

尝试一下,它会解决你的问题。

关于java - 如何使用 Java 中的 ProcessBuilder 将字符串写入 cmd 提示符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56368509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com