将数组项传递给PowerShell中的函数

时间:2013-12-05 17:22:14

标签: arrays function powershell

我已经阅读过很多关于PowerShell函数和传递参数的文章但是我还没有找到解决方法来解决如何将特定数组项传递给函数而不是完整数组的问题。
这就是我的代码的样子:

$log = "C:\Temp\test.txt"
$test = "asdf"
$arrtest = @("one", "two", "three")

Function Write-Log($message)
{
    Write-Host $message
    $message | Out-File $log -Append
}

现在我想将数组的单个项目传递给Write-Log函数,如下所示:

Write-Log "first arr item: $arrtest[0]"
Write-Log "second arr item: $arrtest[1]"
Write-Log "third arr item: $arrtest[2]"

但是在命令行中我总是得到完整的数组加上[数字]作为字符串:

first arr item: one two three[0]
second arr item: one two three[1]
third arr item: one two three[2]

我认为问题在于我的语法,有人可以指出我正确的方向吗?

非常感谢!!

1 个答案:

答案 0 :(得分:2)

这样可以解决问题:

Write-Log "first arr item: $($arrtest[0])"

在您的尝试中,传递整个数组,因为PowerShell将$arrtest解释为变量,将[0]解释为字符串。