Mit Hilfe von Batch numerisch sortieren
Guten Tag liebe Community,
ich habe leider ein Problem mit meiner Batch Datei. Habe es jetzt geschafft das ich aus der Textdatei die ich habe, alle Informationen die ich benötige rauszuschreiben, jedoch nicht sortiert. In der Textdatei sind verschiedene Bausteine die ich rausfiltern muss.
Kleines Beispiel zum Verständnis, so sieht meine Textdatei zur Zeit aus:
ECHO ist ausgeschaltet (OFF).
4;IDK 100295017 99 gkv informatik
15;IDK 100395611 99 AOK Nordost Region MVP
46;IDK 100696012 99 AOK Nordost Region BRB
77;IDK 100696023 99 gkv informatik
87;IDK 101097008 99 AOK Sachsen-Anhalt
121;IDK 101097019 99 AOK Magdeburg
129;IDK 101197316 99 AOK Halle
ECHO ist ausgeschaltet (OFF).
28;VKG 03 100395611 5 07 00
65;VKG 03 100696012 5 07 00
110;VKG 03 101097008 5 07 00
141;VKG 03 101317004 5 07 10
142;VKG 03 661430035 5 07 20
143;VKG 03 101317004 5 07 30
144;VKG 03 101317004 5 07 40
145;VKG 03 101317004 5 07 50
146;VKG 03 101317004 5 07 55
147;VKG 03 101317004 5 07 56
148;VKG 03 101317004 5 07 57
149;VKG 03 101317004 5 07 60
150;VKG 03 101317004 5 07 61
151;VKG 03 101317004 5 07 62
152;VKG 03 101317004 5 07 65
ECHO ist ausgeschaltet (OFF).
7;NAM 01 gkv informatik Fachbereich Inputmanagement
38;NAM 01 AOK Nordost Region Mecklenburg-Vorpommern
69;NAM 01 AOK Nordost Region Brandenburg
80;NAM 01 gkv informatik Fachbereich Inputmanagement
111;NAM 01 AOK Sachsen-Anhalt
125;NAM 01 AOK Sachsen-Anhalt
133;NAM 01 AOK Sachsen-Anhalt
194;NAM 01 AOK NORDWEST (Region Schleswig-Holstein)
215;NAM 01 AOK NORDWEST (Region Schleswig-Holstein) Rechnungsprüfung
224;NAM 01 AOK NORDWEST Die Gesundheitskasse
232;NAM 01 AOK NORDWEST (Region Schleswig-Holstein) Rechnungsprüfung
242;NAM 01 AOK NORDWEST (Region Schleswig-Holstein) Rechnungsprüfung
251;NAM 01 AOK NORDWEST (Region Schleswig-Holstein) Rechnungsprüfung
259;NAM 01 AOK NORDWEST
Habe die Daten auch nummerisch sortieren lassen, da ich dachte, dies würde das sortieren erleichtern. Also sodass die Datei danach so aussieht:
4;IDK 100295017 99 gkv informatik
7;NAM 01 gkv informatik Fachbereich Inputmanagement
15;IDK 100395611 99 AOK Nordost Region MVP
28;VKG 03 100395611 5 07 00
38;NAM 01 AOK Nordost Region Mecklenburg-Vorpommern..... usw.
also genau so wie die Zahlen angegeben sind, soll es sortiert sein.
PS: wenn möglich nach jeder Zeile in der NAM vorkommt eine Leerzeile, sodass zwischen NAM und IDK immer eine Zeile frei ist. (NicetoHave)
ich Bitte sehr um eure Hilfe.
Vielen Dank im Voraus.
Gruß Booster123
ich habe leider ein Problem mit meiner Batch Datei. Habe es jetzt geschafft das ich aus der Textdatei die ich habe, alle Informationen die ich benötige rauszuschreiben, jedoch nicht sortiert. In der Textdatei sind verschiedene Bausteine die ich rausfiltern muss.
Kleines Beispiel zum Verständnis, so sieht meine Textdatei zur Zeit aus:
ECHO ist ausgeschaltet (OFF).
4;IDK 100295017 99 gkv informatik
15;IDK 100395611 99 AOK Nordost Region MVP
46;IDK 100696012 99 AOK Nordost Region BRB
77;IDK 100696023 99 gkv informatik
87;IDK 101097008 99 AOK Sachsen-Anhalt
121;IDK 101097019 99 AOK Magdeburg
129;IDK 101197316 99 AOK Halle
ECHO ist ausgeschaltet (OFF).
28;VKG 03 100395611 5 07 00
65;VKG 03 100696012 5 07 00
110;VKG 03 101097008 5 07 00
141;VKG 03 101317004 5 07 10
142;VKG 03 661430035 5 07 20
143;VKG 03 101317004 5 07 30
144;VKG 03 101317004 5 07 40
145;VKG 03 101317004 5 07 50
146;VKG 03 101317004 5 07 55
147;VKG 03 101317004 5 07 56
148;VKG 03 101317004 5 07 57
149;VKG 03 101317004 5 07 60
150;VKG 03 101317004 5 07 61
151;VKG 03 101317004 5 07 62
152;VKG 03 101317004 5 07 65
ECHO ist ausgeschaltet (OFF).
7;NAM 01 gkv informatik Fachbereich Inputmanagement
38;NAM 01 AOK Nordost Region Mecklenburg-Vorpommern
69;NAM 01 AOK Nordost Region Brandenburg
80;NAM 01 gkv informatik Fachbereich Inputmanagement
111;NAM 01 AOK Sachsen-Anhalt
125;NAM 01 AOK Sachsen-Anhalt
133;NAM 01 AOK Sachsen-Anhalt
194;NAM 01 AOK NORDWEST (Region Schleswig-Holstein)
215;NAM 01 AOK NORDWEST (Region Schleswig-Holstein) Rechnungsprüfung
224;NAM 01 AOK NORDWEST Die Gesundheitskasse
232;NAM 01 AOK NORDWEST (Region Schleswig-Holstein) Rechnungsprüfung
242;NAM 01 AOK NORDWEST (Region Schleswig-Holstein) Rechnungsprüfung
251;NAM 01 AOK NORDWEST (Region Schleswig-Holstein) Rechnungsprüfung
259;NAM 01 AOK NORDWEST
Habe die Daten auch nummerisch sortieren lassen, da ich dachte, dies würde das sortieren erleichtern. Also sodass die Datei danach so aussieht:
4;IDK 100295017 99 gkv informatik
7;NAM 01 gkv informatik Fachbereich Inputmanagement
15;IDK 100395611 99 AOK Nordost Region MVP
28;VKG 03 100395611 5 07 00
38;NAM 01 AOK Nordost Region Mecklenburg-Vorpommern..... usw.
also genau so wie die Zahlen angegeben sind, soll es sortiert sein.
PS: wenn möglich nach jeder Zeile in der NAM vorkommt eine Leerzeile, sodass zwischen NAM und IDK immer eine Zeile frei ist. (NicetoHave)
ich Bitte sehr um eure Hilfe.
Vielen Dank im Voraus.
Gruß Booster123
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 537449
Url: https://administrator.de/forum/mit-hilfe-von-batch-numerisch-sortieren-537449.html
Ausgedruckt am: 10.05.2025 um 12:05 Uhr
12 Kommentare
Neuester Kommentar

Bidde
Gruß s.
@echo off &setlocal
set "quelle=D:\test.txt"
set "ziel=D:\test_neu.txt"
powershell -EP Bypass -NoP -c "gc '%quelle%' | ?{$_ -match '^\d'} | sort {[int64]$_.split(';')} | %%{if($_.split(';')[1] -like 'NAM *'){$_ + [Environment]::Newline}else{$_}} | sc '%ziel%'"

ist das so richtig?
Nein ist falsch, schau dir meinen Code nochmal genau an wo die Pfade stehen, deine Variablenzuweisung ist komplett falsch.set "quelle=C:\Users\Altmann\Desktop\AOKTEST.txt"
set "Ziel=C:\Users\Altmann\Desktop\FERTIG.txt"

also entweder übersehe ich hier etwas
Ja du übersiehst das Der Pfad c:\Users\Altmann\Desktop\AOKTEST.txt lauten muss!"C:\Benutzer" gibt es nicht, das ist nur eine Lokalisierung zur Anzeige von Windows.
Heut schon wieder früh Freitag ....

Geht alles, aber deine Beschreibung check ich nicht, les dir das selbst nochmal durch und denk dran das es ein fremder verstehen muss.

Zitat von @Booster123:
PS. ist es möglich die Zahlen vor dem ; wegzubekommen? eventuell sogar mit dem ; ?
Kein Thema, einfacher SplitPS. ist es möglich die Zahlen vor dem ; wegzubekommen? eventuell sogar mit dem ; ?
@echo off
set "datei=A:\test.txt"
powershell -EP Bypass -NoP -c "gc '%datei%' | ?{$_ -match '^\d'} | sort {[int]$_.split(';')} | %%{if($_.split(';')[1] -like 'NAM *'){$_.Split(';')[1] + [Environment]::Newline}else{$_.Split(';')[1]}}"
p.s. wenn das sowieso ne CSV ist kannst du besser gleich mit Import-CSV arbeiten...