在java应用程序

时间:2017-06-01 15:33:38

标签: java powershell

是否可以在java应用程序中运行整个大型PowerShell脚本,而无需通过启动带有-file参数的PowerShell进程在外部调用它? (通过encodedcommand参数传递它因为命令行长度限制而无法工作)。

即。是否有一个java库,使您可以将您的powershellscript粘贴到您的Java应用程序中并运行它?

我目前将powershellscript嵌入到java应用程序中并将其写入磁盘,但我正在寻找无文件方法。

1 个答案:

答案 0 :(得分:1)

由于要传递大型程序,从Java程序到PS脚本的管道比使用命令行或环境变量更合适。由于我不太了解Java并且没有安装它,我将从下面的代码片段中的PS命令行模拟它。您的Java程序将从列表或其他一些合适的数据结构中读取程序的行(而此示例从文件系统中读取它)。我确实看到谷歌上的点击从Java到外部执行的命令。

cat my.ps1|
    powershell -command {$scr="";foreach ($line in $input){$scr+=$line+"`n"} echo bxb $s cxc}

在你的PS存根收到程序而不是回应它之后,它会执行它:iex $scr

如果您需要将参数从Java传递到PS,您可以将它们与程序一起管道化(例如,作为设置全局变量的代码行),或者它们可以是存根代码中设置的全局变量。其他更复杂的变化是可能的。