gpt4 book ai didi

java - 我可以将字符串变量从 eclipse (java) 发送到 powershell 脚本吗

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

我用过this example能够通过java程序运行脚本来简单地获得文本输出(它按要求工作)。

  String command = "powershell.exe  \"C:\\Users\\--\\--\\script.ps1\" ";
Process powerShellProcess = Runtime.getRuntime().exec(command);

我正在考虑在java中进一步扩展我的脚本,以便在多个页面上使用所述脚本,唯一的变化是理想情况下从eclipse中的循环传递的地址变量。我的 script.ps1 文件中有 $address 变量,它当前在我的 powershell 脚本的顶部声明 - 理想情况下,我希望能够在 eclipse 中声明 $address .

这可能吗?或者我需要以另一种方式调整脚本。

谢谢

最佳答案

您可以使用 Runtime.exec 设置变量,但必须在同一命令中执行此操作,否则脚本将丢失上下文,因为它将在不同的 powershell 中运行不知道变量。

因此,在一个命令中,您可以Set-Variable(对于cmd,或者SET,或者对于Linux,EXPORT)并调用您的 ps1 脚本(或者在我的例子中,echo):

String myvar = "TextTextText";

final Runtime rt = Runtime.getRuntime();
String[] commands = {"powershell.exe", "Set-Variable", "-Name \"myvar\" -Value \""+myvar+"\";", "echo $myvar"};

Process proc = rt.exec(commands);

BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(proc.getErrorStream()));

String s = null;

while ((s = stdInput.readLine()) != null) {
System.out.println(s);
}

while ((s = stdError.readLine()) != null) {
System.out.println(s);
}

关于java - 我可以将字符串变量从 eclipse (java) 发送到 powershell 脚本吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59832723/

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