Powershell:将 Get-AzTableRow 的结果传递给函数

Powershell: Pass result of Get-AzTableRow to function

我在 azure 函数中使用以下 PowerShell 代码来检索属于特定位置的 azure table 中的用户行。

$Rows = Get-AzTableRow -table $cloudTable -customFilter "((Location eq '$loc') and (PartitionKey eq 'User'))"

接下来,我需要将上述查询的结果($Rows)作为参数传递给一个函数。试图将函数定义为

function display_rows($param){
   $tempcount = $param.Count
   for($i=0; $i -lt $tempcount; $i++){
        ...code body...
    }
}

并以 display_rows "$Rows" 的形式调用函数。但它似乎没有按预期工作。这是将 Get-AzTableRow 的结果传递给函数的正确方法吗?请帮我解决这个问题。

基本问题是您将对象的“字符串化”版本发送到函数。 [咧嘴一笑]

当你做...

display_rows "$Rows"

... 没有将 $Rows 中的对象发送给函数。您正在将该对象转换为字符串并发送 that.

那个简单的字符串对象不是您想要的。 [grin]你想要复杂的对象。

因此,解决方法是不要将 $Rows 括在双引号中。像这样裸用它...

display_rows $Rows

这会将 $Var 中包含的对象发送给函数,而不是该对象的 .ToString()


顺便说一句,你绝对不要在 $Var 周围使用引号,除非你确定你需要它们。