BATCH: Zeile mit Trennzeichen zerlegen

Mitglied: Benni82

Benni82 (Level 1) - Jetzt verbinden

04.05.2021 um 19:59 Uhr, 560 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
Linux Netzwerk
NAS läßt sich unter Ubuntu-Server nicht anpingen, unter Windows jedoch schon?!
dr.zetoVor 1 TagFrageLinux Netzwerk52 Kommentare

Hallo, ich habe das Problem, dass ich eine Synology-NAS unter einem Ubuntu-Server nicht pingen kann. Unter einem Windows-Client jedoch wird der Ping beantwortet. Hierzu ...

CPU, RAM, Mainboards
Wohin geht die Zukunft?
cramtroniVor 1 TagFrageCPU, RAM, Mainboards6 Kommentare

Guten Tag zusammen, wir sind gerade dabei, uns eine neue IT-Infrastruktur anzuschaffen, bisher haben wir 2 physische Server, auf denen unsere 9 virtuellen Server ...

Netzwerke
Suche aktuelle Fernwartungsmöglichkeiten ab 2021?
watchdog76Vor 22 StundenFrageNetzwerke10 Kommentare

Hallo, das ist für viele vermutlich ein uraltes Thema und es gibt schon viele alte Threads, weshalb ich trotzdem einen eneue Thread geschrieben habe. ...

Batch & Shell
Accounts nach 6 Monaten löschen
lordofremixesVor 14 StundenFrageBatch & Shell6 Kommentare

Hallo Freunde der Sonne, tatsächlich bin ich jetzt kein ITler mehr, sondern so ein IT Datenschutztyp ITler. Muss leider die Kunden immer darauf hinweisen, ...

Multimedia & Zubehör
Suche Handy im Hallen und Außenbereich
gelöst favoriten-listeVor 1 TagFrageMultimedia & Zubehör6 Kommentare

Hallo Für die Produktion suchen wir aktuell Handy. Es reicht ein normales Tasten Telefon. ( Es muss kein Smartphone sein! ) Es sollte Robust ...

Netzwerke
DHCP IP passt nicht zu MAC-Adresse
KirschiVor 10 StundenFrageNetzwerke16 Kommentare

Hallo zusammen, wir haben einen Drucker dem die feste IP 192.168.0.10 per DHCP zugewiesen wird. Ebenso existiert ein PC, der die IP 192.168.0.19 auf ...

Server-Hardware
10" Server - für Netzwerkschrank
snop123Vor 23 StundenFrageServer-Hardware9 Kommentare

Hallo, im Bereich der Heimnetzwerk setzen sich immer mehr 10" Zoll Netzwerkschränke durch. Ich möchte hier keine Diskussion für das für und wider im ...

Netzwerkprotokolle
OPNVPN Docker Problem, kein Zugriff auf Fritzbox
gelöst Linuxuser27Vor 1 TagFrageNetzwerkprotokolle24 Kommentare

Hallo an alle VPN Experten, ich versuche gerade ein OpenVPN Docker unter meinem Unraid aufzusetzen. Erste Verbindung hat auch soweit funktioniert, allerdings bekomme ich ...