我一直在玩这个dang参数传递给powershell工作。
我需要在调用作业的脚本中将两个变量放入作业中。首先我尝试使用-ArgumentList,然后在我提供的-ScriptBlock中使用$ args [0]和$ args [1]。
function Job-Test([string]$foo, [string]$bar){
Start-Job -ScriptBlock {#need to use the two args in here
} -Name "Test" -ArgumentList $foo, $bar
}
但是我意识到-ArgumentList将这些作为参数提供给-FilePath,因此我将scriptblock中的代码移动到需要两个参数的自己的脚本中,然后在此脚本中指向-FilePath。
function Job-Test([string]$foo, [string]$bar){
$myArray = @($foo,$bar)
Start-Job -FilePath .\Prog\august\jobScript.ps1 -Name 'Test' -ArgumentList $myArray
}
#\Prog\august\jobScript.ps1 :
Param(
[array]$foo
)
#use $foo[0] and $foo[1] here
仍然无法正常工作。我尝试将信息放入一个数组,然后只传递一个参数,但仍然知道可用。
当我说无济于事时,我得到了我需要的数据,但它似乎都压缩成了第一个元素。
例如,假设我将文件的名称作为$ foo传递给它,并且它的路径为$ bar,对于我尝试的每种方法,我会得到args [0]作为"文件名路径&#34 ;而args [1]将是空的。
即:
function Job-Test([string]$foo, [string]$bar){
$myArray = @($foo,$bar)
Start-Job -FilePath .\Prog\august\jobScript.ps1 -Name 'Test' -ArgumentList $myArray
}
然后我打电话给:
$foo = "hello.txt"
$bar = "c:\users\world"
Job-Test($foo,$bar)
我将jobScript.ps1简单地Out-File将两个变量归档到不同行的日志中,它看起来像这样:
log.txt的:
hello.txt c:\users\world
#(empty line)
应该是:
hello.txt
c:\users\world
答案 0 :(得分:0)
你不需要像在java中那样调用函数。只需将两个变量附加到函数调用JSplitPane