現在Powershellと、配列/配列リストとPSObjects/CustomObjectsの処理方法は非常に混同されています。Powershellは要素の数に応じて異なるデータ型を返します
ハイレベル:
私はCSVファイルをインポートしようとすると、特定の行「プレースホルダ」のエントリに挿入しています。これは実際にうまくいきます。私の唯一の問題は、CSVに1つの要素(行)Powershellしか含まれていない場合です。PsCustomObject
を作成します。複数の行がある場合、Powershellは配列を提供します。私の最初のアプローチの
$pConnectionsOnMpDevice += $MpObject
(ワンました:
1要素
$pConnectionsOnMpDevice = ($pList | ?({$_.device -like "*$pDevice*"}))
($pConnectionsOnMpDevice).getType()
IsPublic IsSerial Name BaseType
True True Object[] System.Array
$pConnectionsOnMpDevice
で
$pConnectionsOnMpDevice = ($pList | ?({$_.device -like "*$pDevice*"}))
($pConnectionsOnMpDevice).getType()
IsPublic IsSerial Name BaseType
True True PsCustomObject[] System.Object
n個の要素$ pConnectionsOnMpDevice `で最後に私は、要素を追加しよう使用する(FYI):
#$pConnectionsOnMpDevice.Insert($index,$match)
私は$pConnectionsOnMpDevice
に$MpObject
を追加しようとすると、私はエラーを以下の取得:
Method invocation failed because [System.Management.Automation.PSObject] does not contain a method named 'op_Addition'.
At C:\Scripts\PS_GenerateMPConfig\PS_GenerateMPConfig_06_f.ps1:90 char:13
+ $pConnectionsOnMpDevice += $MpObject
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (op_Addition:String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
私はそれが私がでArraylist
に$pConnectionsOnMpDevice
をキャストしようとしたhere
を説明したのと同じ問題だと仮定
[System.Collections.ArrayList]::$pConnectionsOnMpDevice += $MpObject
しかし、まだ成功していません。
どのように要素を追加することができますか?
マティアス、 はあなたが助けるためにそんなにありがとう:あなたはキャスト操作をしたい場合
は::
を削除します。小さな変更が成功しました:) – cwa