(この例では)Import-CliXML
で読み込まれたオブジェクトに既存のアイテムを追加する方法については頭を上げられません。PowerShellでImport-Clixml経由で読み込まれた既存のオブジェクトにアイテムを追加する
私のXMLファイルは、ロールと担当者のペアのテーブルを含む単純なオブジェクトです。ファイルが存在しない場合、正しく動作します。ファイルに既存のロールが含まれている場合は、それを正常に更新します。ここで
が私のコードされています:役割が設定されている場合は、ファイル内に存在しない(したがって、それに追加する必要があります)、私はこのエラーを取得するMethod invocation failed because [System.Management.Automation.PSObject] does not contain a method named 'op_Addition'.
At C:\Users\me\Set-TeamRole.ps1:33 char:9
$TeamRoles += $RoleObj
function Set-TeamRole {
Param(
[string]$Role,
[string]$Assignee,
[string]$Path = 'TeamRoles.xml'
)
if (Test-Path $Path) {
$TeamRoles = Import-Clixml $Path
$ExistingRole = $TeamRoles | Where {$_.Role -eq $Role}
} else {
$TeamRoles = @()
}
if ($ExistingRole) {
$ExistingRole.Assignee = $Assignee
} else {
$RoleObj = New-Object -TypeName PSCustomObject
$NewRole = @{
Role = $Role;
Assignee = $Assignee;
}
Add-Member $NewRole -InputObject $RoleObj
$TeamRoles += $RoleObj
}
$TeamRoles | Export-Clixml -Path $Path -Force
}
を私はimprotedファイルは、単一の項目が含まれている疑いがあるでしょう。 '$ TeamRoles = @(Import-Clixml $ Path)'を試してみてください。 –