我正在测试一个将一系列项目传递给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的任何帮助都会很有用。谢谢!
答案 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;