[英]Powershell Passing in Array to Function Error Empty
我使用以下代碼創建了一組自定義對象:
$LOTR = @()
$myObject = new-object PSObject
$myObject | Add-Member -type NoteProperty -name GroupName - Value $city.name
$myObject | Add-Member -type NoteProperty -name GroupType - Value $city.type
$LOTR += $myObject
$LOTR (after iterations):
GroupName GroupType
---------- ----------
Aragon Gondor
Arwen Rivendell
我想將$LOTR
傳遞到我編寫的一個函數中,如果存在多個Gondor GroupType
,它將進行比較。 下面是檢查數組是否成功傳遞的函數。
function Comparison {
param ({[Parameter(Mandatory-=$True)[string[]]$myarray})
write-host $myarray
}
我的問題是,當我嘗試傳遞$LOTR
出現錯誤Cannot bind argument to parameter 'myarray' because it is an empty array
我究竟做錯了什么? 我嘗試使用強制該函數接受空數組,並且它為空。 但是在powershell命令行上打印$LOTR
返回我輸入的所有值。 我不確定我要去哪里。
如果我對您的語法進行一些更改,則您的代碼有效( 有點 )
$myObject | Add-Member -type NoteProperty -name GroupName - Value $city.name
應為以下值,並在Value
之前刪除空格
$myObject | Add-Member -type NoteProperty -name GroupName -Value $city.name
我更新了函數,使其看起來像這樣。 強制和花括號后刪除連字符。 格式化僅出於可讀性
function Comparison{
param (
[Parameter(Mandatory=$True)]
[string[]]$myarray)
write-host $myarray
}
至於為什么要強制轉換為我不知道的字符串數組。
我得到以下輸出與您的測試數據
@{GroupName=Aragon; GroupType=Gondor} @{GroupName=Arwen; GroupType=Rivendell}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.