tschepeto
Goto Top

Powershell Nummer mit Trennzeichen vergleichen

Ich möchte den Inhalt einer Textdatei überprüfen. In dieser sind Inventarnummern aufgelistet.
Dies sieht zum Beispiel so aus:

555-811.22.333.442
333-111.22.333.555

Leider wurden die Nummern teilweise falsch erfasst und ich darf sie nun korrigieren. Der häufigste Fehler sind fehlende Trennzeichen oder falsche Trennzeichen:

555.811.22.333.442
555811.22.333.442
555-811-22-333-442

Mir reicht es, wenn die falschen Inventarnummern aufgelistet werden.
$syslog meldet dann den Fehler.

Hier ein Beispiel meines xten Versuches, die Trennzeichen auszuschliessen

if ($textdatei -contains " {0-999}-{0-999}.{0-99}.{0-999}.{0-999} ") {Write-Host "Keine Fehler"}

else
{

$syslog
}

Ich denke, die regulären Ausdrücke wären ein Ansatz, leider fehlt mir aber das Wissen für komplexere Abfragen. Weiss jemand einen Rat?

Content-Key: 607665

Url: https://administrator.de/contentid/607665

Printed on: April 19, 2024 at 09:04 o'clock

Mitglied: 145916
Solution 145916 Sep 25, 2020 updated at 13:31:48 (UTC)
Goto Top
Mir reicht es, wenn die falschen Inventarnummern aufgelistet werden.
(gc 'D:\textdatei.txt') | ?{$_ -notmatch '^\d{1,3}-\d{1,3}\.\d{1,2}\.\d{1,3}\.\d{1,3}$'}  
oder auch so mit zusätzlicher Angabe der Zeilennnummern
Select-String 'D:\textdatei.txt' -Pattern '^\d{1,3}-\d{1,3}\.\d{1,2}\.\d{1,3}\.\d{1,3}$' -NotMatch -AllMatches | select LineNumber,Line   
Member: tschepeto
tschepeto Sep 28, 2020 at 05:54:19 (UTC)
Goto Top
Danke face-smile hilft mir schon weiter!