BATCH: Zeile mit Trennzeichen zerlegen

Mitglied: Benni82

Benni82 (Level 1) - Jetzt verbinden

04.05.2021 um 19:59 Uhr, 530 Aufrufe, 7 Kommentare

Hallo zusammen,

ich bräuchte mal Hilfe und hoffe hier kann mir jemand helfen.

Ich habe eine Textdatei (liste.txt) wo in der Form IP Endungen drin stehen, die mit einem Trennzeichen Semikolon getrennt sind.

Inhalt z. B. 10;11;23;25;30 oder 10;11;23;25;30;124;125

Die Datei kann verschiedene Anzahlen an IP Endungen haben.

Diese Endungen muss per Batch rausfiltern um sie weiterzuverarbeiten. Irgendwie fehlt mir hier ein Gedanke.

Ich würde Sie gerne in eine neue Datei untereinander schreiben lassen (z.b. liste_clean.txt) die dann so aussieht

10
11
23
25
30

Ich habe dies irgendwie schon versucht per for Schleife und token & delims. Aber entweder bekomme ich nur einen einen Wert hineingeschrieben oder wieder die ganze Zeile :-( face-sad

hat aber alles nicht funktioniert :-( face-sad

Sicherlich ganz einfach, aber irgendwie bekomme ich es nicht hin, die Zeichenkette zu zerlegen mit definiertem Trennzeichen. Das Trennzeichen könnte ich auch austauschen, wenn Semikolon ein Problem ergibt.

Die Suche hat mir irgendwie nicht geholfen - genauso wie die große Suchmaschine.

Hat jemand eine Idee?

Vielen Dank im Voraus!
Mitglied: TK1987
LÖSUNG 04.05.2021, aktualisiert um 20:55 Uhr
Moin,

wieso nicht gleich mit Powershell?

Zitat von @Benni82:
Ich habe dies irgendwie schon versucht per for Schleife und token & delims. Aber entweder bekomme ich nur einen einen Wert hineingeschrieben oder wieder die ganze Zeile :-( face-sad
hat aber alles nicht funktioniert :-( face-sad
Zum einen fehlt bei deinem Schnipsel die Schleifenvariable, darüber hinaus scheinst du das mit den Tokens nicht richtig verstanden zu haben.

Deine Zeile wird an den Trennzeichen, die du mittels Delims festgelegt hast gesplittet. Mit Tokens legst du fest, welcher gesplittete Teil der Zeichenkette in welche Schleifenvariablen geschrieben wird.
"Tokens=*" bedeutet hier soviel wie "Schreibe alles restliche ungesplittet in die nächste folgende Variable", somit erhälst du natürlich wieder die Ganze Zeile.

Gruß Thomas
Bitte warten ..
Mitglied: SeaStorm
04.05.2021 um 22:13 Uhr
Warum stirbt dieses olle Batch denn nicht endlich :( face-sad
Nimm doch Powershell. Damit machst du da einen Einzeiler draus und hast am Ende schöne Objekte mit denen man ordentlich hantieren kann ...


Bitte warten ..
Mitglied: Benni82
04.05.2021, aktualisiert um 22:48 Uhr
Vielen Dank für Eure Antwort.

Ich kann es aktuell nicht testen, aber wenn ich das in der Theorie so sehe, sind hier ja die tokens 1-5 definiert. Es können aber immer unterschiedliche Anzahlen sein. Oder sehe ich das falsch? Also mal stehen 5 in der Datei und mal auch 10

Ja, mit diesen delims und token tue ich mich leider oft schwer. Die Variable habe ich aber tatsächlich nur hier vergessen, dass hatte ich schon drin. Das war auch nur der Ideen Ansatz, vielleicht gibt es da besseres.

Powershell kann ich hier leider nicht nehmen. Es handelt sich hier um bestehende XP Systeme (Ja, wirklich!) wo nichts installiert werden kann, sorry :-( face-sad
Bitte warten ..
Mitglied: SeaStorm
04.05.2021 um 23:47 Uhr

Wi - der - lich ;)
Bitte warten ..
Mitglied: mayho33
04.05.2021 um 23:59 Uhr
Zitat von @Benni82:
Powershell kann ich hier leider nicht nehmen. Es handelt sich hier um bestehende XP Systeme (Ja, wirklich!) wo nichts installiert werden kann, sorry :-( face-sad

Oha! XP? Dein Ernst? Ich hoffe du gehst damit nicht ans Netz.

Wenn kein Powershell dann verwende wenigsten VBScript. Der Scripting Host ist hier per default aktiviert.

Beispiele gibt's Tonnenweise im Netz. Und zum Testen tut auch die Free-Versuon von VBSEdit. Da sind massig an Codesnipeds dabei.

Call einen VBS von der CMD aus dann so:


Grüße!
Bitte warten ..
Mitglied: TK1987
LÖSUNG 05.05.2021 um 06:17 Uhr
Zitat von @Benni82:
Es können aber immer unterschiedliche Anzahlen sein. Oder sehe ich das falsch? Also mal stehen 5 in der Datei und mal auch 10
Ist ja kein Problem, du musst nur die Tokens entsprechend erhöhen etwa auf 1-10. Wenn dann in einer Zeile nur 5 stehen, sind die restlichen Variablen leer.
Bitte warten ..
Mitglied: Benni82
05.05.2021 um 08:32 Uhr
Danke TK1987 :-) face-smile Grade probiert, dass funktioniert super.

Hab jetzt noch ne IF Abfrage vor der Variable eingebaut, dass auch wirklich nur geschrieben wird, wenn %%A usw. nicht leer sind.

Danke! Das hilft mir weiter

P.S. Nein, die XP Rechner (nur noch VM's) sind nicht am Netz ;-) face-wink
Bitte warten ..
Heiß diskutierte Inhalte
Hyper-V
Spricht was gegen die Virtualisierung mit Hyper-V?
bauinformatikerVor 1 TagFrageHyper-V32 Kommentare

Seit 10 Jahren betreiben mein Kollege und ich 2 Hosts mit ESXi. Nun sollen die neu beschafft und neu installiert werden. Bis auf einen ...

Off Topic
Vom IT-Systemelektroniker zurück zur "IT"
xsheynVor 1 TagFrageOff Topic8 Kommentare

Schönen guten Abend, vor einigen Wochen hatte ich schonmal einen Thread erstellt, dass ich IT-Systemelektroniker bin aber kaum Erfahrung in der "Typischen IT" habe. ...

Entwicklung
Plattformübergreifende Programmierung mit Visual Studio
gelöst nagitaVor 1 TagAllgemeinEntwicklung11 Kommentare

Hallo ich habe mir vor einiger Zeit die aktuellste Version von Visual Studio installiert und bin eigentlich auch recht zufrieden damit. Ich habe vor, ...

Datenbanken
Liste als PDF ausdrucken
jensgebkenVor 1 TagFrageDatenbanken6 Kommentare

Hallo Gemeinschaft, Ich habe eine Access Datenbank und darin eine Abfrage in der Kunden Adressen und Kosten angezeigt werden pro Kunde. Nun möchte ich, ...

Video & Streaming
Netzwerkspeicher IPTV
uridium69Vor 1 TagFrageVideo & Streaming8 Kommentare

Hallo Ich möchte gerne meine beiden Android IPTV Receiver das NAS als Netzwerkspeicher und als Aufnahmemedium hinzufügen, ich habe unter den Optionen "Netzwerkspeicher hinzufügen" ...

Exchange Server
Postfach für öffentliche Ordner ist voll
gelöst Tommy525600Vor 22 StundenFrageExchange Server6 Kommentare

Hallo an alle, ich habe folgendes Problem: Mein primäres Postfach für öffentliche Ordner ist voll (99,58 GB) (und ja, ich kann auch nix dafür). ...

Outlook & Mail
Outlook export to PST schlägt fehl - Alternativen?
gelöst StefanKittelVor 1 TagFrageOutlook & Mail3 Kommentare

Hallo, ich versuche gerade ca. 20 Postfächer von einem Hosted Exchange-Anbieter in PST-Dateien zu sichern/archivieren. Bei 3 Postfächer schläft dies mit "unbekannter Fehler" fehl. ...

Netzwerke
PFSense und Transferprobleme
Xaero1982Vor 21 StundenFrageNetzwerke8 Kommentare

Moin Zusammen, leidiges Thema PFSense - ich hab mich mal wieder ran gewagt. Ich hab hier so ein paar VLANs laufen und nen ESX. ...