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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 621505
Url: https://administrator.de/contentid/621505
Ausgedruckt am: 04.12.2024 um 08:12 Uhr
1 Kommentar