Files
IO-Konvertierer/Test-Skripte/Skript2.ps1
T
2023-06-13 15:37:11 +02:00

106 lines
5.8 KiB
PowerShell

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")