将多个参数传递给powershell内的单个命令
问题描述:
我想从命令行执行脚本,如:command.ps1,并将参数传递给command.ps1 powershell脚本中的命令: java -jar cli.jar。将多个参数传递给powershell内的单个命令
这怎么办?
答
如果你想命令行参数传递给PowerShell脚本,你可以使用的$ args (这个内置变量将包含在命令行中传递的参数)
foreach ($arg in $args){
"cli argument " + $arg
}
答
当你打电话给你的程序像你这样你的应用程序将收到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);
}
您会在命令行中看到您的输入参数。
答
解决方案1
你的纸条PS1
param (
[string[]]$ListParam
)
[string[]]$ListParamAll= "-jar", "cli.jar"
$ListParamAll+=$ListParam
start-process "java" -ArgumentList $ListParamAll
如何调用该脚本
cli.ps1 -ListParam dir,-t,i:\app
答
解决方案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"
你的问题是什么?如何编写调用java程序的powershell脚本?或者该程序如何对提供给它的参数做出反应? – GhostCat
我认为问题是如何将脚本调用者传递给Java程序的参数传递给执行者。 –