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 周围使用引号,除非你确定你需要它们。
我在 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 周围使用引号,除非你确定你需要它们。