将Powershell数组作为变量和脚本块传递

时间:2014-04-11 21:31:25

标签: powershell powershell-v3.0

我正在测试一个将一系列项目传递给powershell的过程,而我在使用ScriptBlock时遇到了困难。我创建了一个测试函数:

function TEST
{
$ScriptBlock =
{
param (
$BackupPath ="Z:\1\2\",
[array]$DBN, #= @("1", "2", "3"),
$ServerInstance  = "10.10.10.10"
)



Foreach ($DBName in $DBN)
{
write-host "$($DBName)" 
}}}

然后我调用这个函数:

$DBN = @("1", "2", "3")
TEST -ArgumentList (,$DBN)

我尝试了各种方法,但它无法循环并给我回复结果。在像这样的函数中对ScriptBlock的任何帮助都会很有用。谢谢!

1 个答案:

答案 0 :(得分:2)

这应该做你想要的:

# Declare the function
function Test-Array {
    [CmdletBinding()]
    param (
        [string[]] $DBN
    )

    foreach ($DBName in $DBN) {
        Write-Host -Object $DBName;
    }
}

# Call the function
$DBN = @('1', '2', '3');
Test-Array -DBN $DBN;