Powershell json auswerten irre langsam oder leer
Aloa,
Es wird schonmal das aus den json Dateien ausgelesen was ich haben will, Pfad mit Dateinamen und die Dateiversion. =)
Bei ein paar json stört die Laufzeit nicht, bei 20k json schon.
Denke der Übeltäter ist das PSObject was bei jeder Umdrehung erneut erstellt wird.
Erstelle ich das Object außerhalb und befülle das $rc bei jeder Runde neu, ist das PSCustomResultArray am Ende leer.
Eine Idee?
VG
function Get-ObjectMembers {
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True, ValueFromPipeline=$True)]
[PSCustomObject]$obj
)
$obj | Get-Member -MemberType NoteProperty | ForEach-Object {
$key = $_.Name
[PSCustomObject]@{Key = $key; Value = $obj."$key"}
}
}
$Quelle = "C:\Temp\JsonTest"
$PSCustomResultArray = @()
gci -Path $Quelle | % { Get-Content -Raw $_.FullName | ConvertFrom-Json |Get-ObjectMembers | Where-Object Key -Match "VersionInfo" | %{
$_.Value | %{
$rc = New-Object PSObject
$rc | Add-Member -type NoteProperty -name Pfad -Value $_.Filename
$rc | Add-Member -type NoteProperty -name Version -Value $_.FileVersion
$PSCustomResultArray += $rc
Remove-Variable rc
}
}
}
$PSCustomResultArray | Sort-Object -Property Pfad -Descending
Es wird schonmal das aus den json Dateien ausgelesen was ich haben will, Pfad mit Dateinamen und die Dateiversion. =)
Bei ein paar json stört die Laufzeit nicht, bei 20k json schon.
Denke der Übeltäter ist das PSObject was bei jeder Umdrehung erneut erstellt wird.
Erstelle ich das Object außerhalb und befülle das $rc bei jeder Runde neu, ist das PSCustomResultArray am Ende leer.
Eine Idee?
VG
Please also mark the comments that contributed to the solution of the article
Content-ID: 621505
Url: https://administrator.de/contentid/621505
Printed on: December 2, 2024 at 17:12 o'clock
1 Comment