小编Nic*_*nan的帖子

将字符串变量作为逗号分隔列表传递给函数参数

我有一个 PowerShell 函数,它通过逗号分隔的列表接受单个参数的多个值,如下所示:

test-function -Targets 127.0.0.1, 8.8.8.8, fake.fqdn.com -FileName "c:\results.csv"
Run Code Online (Sandbox Code Playgroud)

这是参数部分:

function test-function {
    param(
        [string[]]$Targets
        [string]$FileName
    )
}
Run Code Online (Sandbox Code Playgroud)

我试图将一个数组作为多个 Target 参数放入,因此我将它们放入一个变量中,如下所示:

foreach ($target in $arrayTargets) { $temp = $temp + ", $Target" }
$Targets = $temp -replace "^, ", ""
Run Code Online (Sandbox Code Playgroud)

这将导致所需的“127.0.0.1, 8.8.8.8, fake.fqdn.com”作为变量中的字符串$Targets

当我尝试执行引用该$Targets变量的函数时,该函数将其解释$Targets为单个条目,而不是多个条目。这是我尝试过的,结果相同:

test-function -Targets $Targets -FileName "c:\results.csv"
test-function -Targets "$Targets" -FileName "c:\results.csv"
Run Code Online (Sandbox Code Playgroud)

我还尝试了 ArgList 几种不同的方式:

$ArgList = "-Targets $Targets -FileName `"c:\results.csv`""
test-function $ArgList
Run Code Online (Sandbox Code Playgroud)

它不是将每个单独的数组条目作为参数,而是将整个字符串作为参数。

我怎样才能让这个函数接受一个数组作为多个目标?

powershell parameter-passing

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

parameter-passing ×1

powershell ×1