Write-Host $(Get-Date -Format "HH:mm:ss") $Excel = New-Object -ComObject Excel.Application $EDatei = $Excel.WorkBooks.Open("R:\m.kraft\Excel Werte ändern\Excel-Datei.xlsx") $EBlatt = $EDatei.WorkSheets.item(1) $Excel.Visible = $false $Pfad = "R:\m.kraft\Excel Werte ändern\EA_Krüger_19.03.2020 - Kurz.txt" $i = 1 $DIs = @() $DQs = @() $Fehler = @() $Datei = Get-Content $Pfad $ZuDI = @(„DI“, „BA“, „BB“, „BC“, „BD“, „BE“, „BF“, „BG“, „BH“, „BJ“, „BK“, „BL“, „BM“, „BN“, „BP“, „BQ“, „BR“, „BS“, „BT“, „BU“, „BV“, „BW“, „BX“, „BY“, „BZ“, „FA“, „FB“, „FC“, „FD“, „FE“, „FF“, „FG“, „FH“, „FJ“, „FK“, „FL“, „FM“, „FN“, „FP“, „FQ“, „FR“, „FS“, „FT“, „FU“, „FV“, „FW“, „FX“, „FY“, „FZ“, „SA“, „SB“, „SC“, „SD“, „SE“, „SF“, „SG“, „SH“, „SJ“, „SK“, „SL“, „SM“, „SN“, „SP“, „SQ“, „SR“, „SS“, „ST“, „SU“, „SV“, „SW“, „SX“, „SY“, „SZ“) $ZuDQ = @(„DQ“, „CA“, „CB“, „CC“, „CD“, „CE“, „CF“, „CG“, „CH“, „CJ“, „CK“, „CL“, „CM“, „CN“, „CP“, „CQ“, „CR“, „CS“, „CT“, „CU“, „CV“, „CW“, „CX“, „CY“, „CZ“, „EA“, „EB“, „EC“, „ED“, „EE“, „EF“, „EG“, „EH“, „EJ“, „EK“, „EL“, „EM“, „EN“, „EP“, „EQ“, „ER“, „ES“, „ET“, „EU“, „EV“, „EW“, „EX“, „EY“, „EZ“, „GA“, „GB“, „GC“, „GD“, „GE“, „GF“, „GG“, „GH“, „GJ“, „GK“, „GL“, „GM“, „GN“, „GP“, „GQ“, „GR“, „GS“, „GT“, „GU“, „GV“, „GW“, „GX“, „GY“, „GZ“, „HA“, „HB“, „HC“, „HD“, „HE“, „HF“, „HG“, „HH“, „HJ“, „HK“, „HL“, „HM“, „HN“, „HP“, „HQ“, „HR“, „HS“, „HT“, „HU“, „HV“, „HW“, „HX“, „HY“, „HZ“, „KA“, „KB“, „KC“, „KD“, „KE“, „KF“, „KG“, „KH“, „KJ“, „KK“, „KL“, „KM“, „KN“, „KP“, „KQ“, „KR“, „KS“, „KT“, „KU“, „KV“, „KW“, „KX“, „KY“, „KZ“, „MA“, „MB“, „MC“, „MD“, „ME“, „MF“, „MG“, „MH“, „MJ“, „MK“, „ML“, „MM“, „MN“, „MP“, „MQ“, „MR“, „MQ“, „MR“, „MS“, „MT“, „MU“, „MV“, „MW“, „MX“, „MY“, „MZ“, „PA“, „PB“, „PC“, „PD“, „PE“, „PF“, „PG“, „PH“, „PJ“, „PK“, „PL“, „PM“, „PN“, „PP“, „PQ“, „PR“, „PS“, „PT“, „PU“, „PV“, „PW“, „PX“, „PY“, „PZ“, „QA“, „QB“, „QC“, „QD“, „QE“, „QF“, „QG“, „QH“, „QJ“, „QK“, „QL“, „QM“, „QN“, „QP“, „QQ“, „QR“, „QS“, „QT“, „QU“, „QV“, „QW“, „QX“, „QY“, „QZ“, „RA“, „RB“, „RC“, „RD“, „RE“, „RF“, „RG“, „RH“, „RJ“, „RK“, „RL“, „RM“, „RN“, „RP“, „RQ“, „RR“, „RS“, „RT“, „RU“, „RV“, „RW“, „RX“, „RY“, „RZ“, „TA“, „TB“, „TC“, „TD“, „TE“, „TF“, „TG“, „TH“, „TJ“, „TK“, „TL“, „TM“, „TN“, „TP“, „TQ“, „TR“, „TS“, „TT“, „TU“, „TV“, „TW“, „TX“, „TY“, „TZ“) foreach ($Eintrag in $Datei) { $Eintragszeile = $Eintrag.split("'") <#Write-Host "Gesamter eintrag " $Eintragszeile Write-Host "Eintrag 1 " $Eintragszeile[0] Write-Host "Eintrag 2 " $Eintragszeile[1] Write-Host "Eintrag 3 " $Eintragszeile[2] Write-Host "Eintrag 4 " $Eintragszeile[3]#> $EAZahl = $Eintragszeile[1] $EAKommentar = $Eintragszeile[3] $EAZahl = $EAZahl.TrimStart("'") #$EAZahl = $EAZahl.TrimEnd("'") #$EAKommentar = $EAKommentar.TrimStart("'") $EAKommentar = $EAKommentar.TrimEnd("'") if ($($($EAZahl.Substring(0,2)) -in $ZuDI)) { $EAZahl = $EAZahl -replace("[a-zA-Z]", "") $LaengeEAZahl = $($EAZahl.Length - 1) $EAZahl = $EAZahl.Substring(0,$LaengeEAZahl) + "." + $EAZahl.Substring($LaengeEAZahl) $EAZahl = "DI" + $EAZahl $DIs += @([pscustomobject]@{Name=$EAZahl;Zeile=$i}) } elseif ($($($EAZahl.Substring(0,2)) -in $ZuDQ)) { $EAZahl = $EAZahl -replace("[a-zA-Z]", "") $LaengeEAZahl = $($EAZahl.Length - 1) $EAZahl = $EAZahl.Substring(0,$LaengeEAZahl) + "." + $EAZahl.Substring($LaengeEAZahl) $EAZahl = "DQ" + $EAZahl $DQs += @([pscustomobject]@{Name=$EAZahl;Zeile=$i}) } else { Write-Host "Achtung, Fehler bei $EAZahl $EAKommentar" $Fehler += @([pscustomobject]@{Name=$EAZahl;Zeile=$i}) #fehler } #Write-Host $EAZahl #Write-Host $EAKommentar $EBlatt.Cells.Item($i,1) = $EAZahl $EBlatt.Cells.Item($i,2) = $EAKommentar $i++ } $EDatei.Save() $Excel.Quit() $DIs = $DIs | Sort-Object "Name" $Gleiche = @() for ($j = 0; $j -lt $($DIs.Count -1); $j++) { $IstGleich = $($DIs[$j].Name -eq $DIs[$($j+1)].Name) if ( $IstGleich ) { #Eintrag hinzufügen if ( -not $($Gleiche[-1].Zeile -eq $DIs[$j].Zeile)) { $Gleiche += $DIs[$j] } $Gleiche += $DIs[$($j +1)] Write-Host "Gleiche: " $Gleiche } } # $Gleiche = $Gleiche.Zeile | select -Unique if ($($Gleiche.Length) -gt 0) { Write-Host "Folgende Eingänge sind doppelt belegt" Write-Host "Eingang Zeile (Excel)" foreach ($Gleich in $Gleiche) { Write-Host $Gleich.Name " " $Gleich.Zeile } } else { Write-Host "Es gibt keine doppelt belegten Eingänge!" } Write-Host $(Get-Date -Format "HH:mm:ss")