2016-11-05 72 views
-2

我想从命令行执行脚本,如:command.ps1,并将参数传递给command.ps1 powershell脚本中的命令: java -jar cli.jar。将多个参数传递给powershell内的单个命令

这怎么办?

+0

你的问题是什么?如何编写调用java程序的powershell脚本?或者该程序如何对提供给它的参数做出反应? – GhostCat

+1

我认为问题是如何将脚本调用者传递给Java程序的参数传递给执行者。 –

回答

1

如果你想命令行参数传递给PowerShell脚本,你可以使用的$ args (这个内置变量将包含在命令行中传递的参数)

foreach ($arg in $args){ 

"cli argument " + $arg 

} 
0

当你打电话给你的程序像你这样你的应用程序将收到3个参数,即:

    DIR
  • -t
  • 我:\ APP

当你写你的应用程序,你通常会写一个主要方法,需要一个像这样的arg数组:

public static void main (String[] args) 
{ 
    // code 
} 

要回答你的问题,args数组现在将包含你的三个参数。因此,如果您想将主要方法更改为:

public static void main (String[] args) 
{ 
    for (String arg : args) System.out.println(arg); 
} 

您会在命令行中看到您的输入参数。

0

解决方案1 ​​

你的纸条PS1

param (
     [string[]]$ListParam 
    ) 

    [string[]]$ListParamAll= "-jar", "cli.jar" 
    $ListParamAll+=$ListParam 

    start-process "java" -ArgumentList $ListParamAll 

如何调用该脚本

cli.ps1 -ListParam dir,-t,i:\app 
0

解决方案2

你的纸条PS1

param (
    [string]$MyParam 
) 

[string[]]$ListParamAll= "-jar", "cli.jar" 
$ListParamAll+=($MyParam -split " ") 

start-process "java" -ArgumentList $ListParamAll 

如何调用该脚本

cli.ps1 -MyParam "dir,-t,i:\app"