$SPSAnschluesse = @([PSCustomObject]@{ Name = "E100.5" Kommentar = "Kommentar E100.5" Zeile = "5" }) $SPSAnschluesse += @([PSCustomObject]@{ Name = "E200.0" Kommentar = "Kommentar E200.0" Zeile = "7" }) $SPSAnschluesse += @([PSCustomObject]@{ Name = "E100.0" Kommentar = "Kommentar 100.0" Zeile = "4" }) Clear-Variable SPSFehlendeAnschluesse #Schleife fuer SPS $SPSAnschluesse = $SPSAnschluesse | Sort-Object "Name" Write-Host "Uebergebene SPS-Anschluesse: " $SPSAnschluesse foreach ($SPSAnschluss in $SPSAnschluesse) { # $SPSSubAnschlussLetzteStelle = @() Write-Host "Aktueller SPS-Anschluss: " $SPSAnschluss.Name #Write-Host "Laenge SPSAnschluss: " $SPSAnschluss.Name.Length $SPSAnschlussBauteil = $SPSAnschluss.Name.Substring(0,$SPSAnschluss.Name.Length - 2) Clear-Variable SPSFehlendeAnschluesse $SollAnschluesse = @(0,1,2,3,4,5,6,7) foreach ($SPSSubAnschluss in $SPSAnschluesse) { Write-Host "Aktueller Sub-Anschluss: " $SPSSubAnschluss.Name $SPSSubAnschlussBauteil = $SPSSubAnschluss.Name.Substring(0,$SPSSubAnschluss.Name.Length - 2) if ($SPSSubAnschlussBauteil -eq $SPSAnschlussBauteil) { Write-Host "Fall eingetreten: Vorletzte Stelle von SPS und SubSPS sind gleich" $SPSSubAnschlussLetzteStelle = $($SPSSubAnschluss.Name).Substring($SPSSubAnschluss.Name.Length - 1,1) Write-Host "Inhalt von SPSSubAnschlussLetzteStelle: " $SPSSubAnschlussLetzteStelle Write-Host "Alte SollAnschluesse: " $SollAnschluesse $SollAnschluesse = $SollAnschluesse | Where-Object {$_ -ne $SPSSubAnschlussLetzteStelle} Write-Host "Neue SollAnschluesse: " $SollAnschluesse } } Write-Host "Uebergebene fehlende Anschluesse: " $SollAnschluesse foreach ($FehlendenAnschluss in $SollAnschluesse) { Write-Host "Aktuell fehlender Anschluss: " $FehlendenAnschluss $SPSName = $SPSAnschluss.Name $BMKZahl = $($($SPSName.Substring(0,$SPSName.Length - 1)) + $FehlendenAnschluss) $SPSAnschluesse += @([PSCustomObject]@{ Name = $BMKZahl Kommentar = "" #Zeile = "" wird nich gebraucht, da hier keine Duplikate auftreten koennen. Ausserdem gibt es ohnehin keine zugehoerige Zeile in der UrsprungsDatei }) Write-Host "Neue SPSAnschluesse: " $SPSAnschluesse } } $SPSAnschluesse = $SPSAnschluesse | Sort-Object "Name" Write-Host "Neue SPSAnschluesse sortiert: " $SPSAnschluesse Write-Host "" Write-Host "" Write-Host "------------------------------------------------------------------------------------------------------------------------------------------------------------" Write-Host "" Write-Host ""