private/Add-DetailProperty.ps1
|
function Add-DetailProperty { param( $obj, [string] $name, [string] $value, [string[]] $parts = @() ) if ($parts.Count -gt 0) { $valueParts = $value -split ';' | ForEach-Object { $_.Trim() } $sub = [PSCustomObject]@{} for ($i = 0; $i -lt $parts.Count; $i++) { $v = if ($i -lt $valueParts.Count) { $valueParts[$i] } else { '' } $sub | Add-Member -NotePropertyName $parts[$i] -NotePropertyValue $v } $obj | Add-Member -NotePropertyName $name -NotePropertyValue $sub } elseif ($value -match ';') { $obj | Add-Member -NotePropertyName $name -NotePropertyValue ( $value -split ';' | ForEach-Object { $_.Trim() } ) } else { $obj | Add-Member -NotePropertyName $name -NotePropertyValue $value } } |