Mittels batch eine texttabelle in csv format überführen und dabei einträge löschen
Ich möchte im Rahmen einer Bachelor Thesis die Konvertierung eines Datensatzes automatisieren. Die Daten werden in CATIA als *.txt abgespeichert und müssten dann gefiltert und als CSV abgespeichert werden. Idealerweise würde ich es gerne mit einer Batch Datei lösen - meine Erfahrungen diesbezüglich sind jedoch gleich Null (d.h. ich les mich nun seit etwa einer Woche durch dieses und diverse andere Foren, finde viele Ansätze aber keine passende Gesamtlösung)
Hallo miteinander,
wie im Vorwort bereits erwähnt, möchte ich im Rahemn einer Bachelor Thesis die Konvertierung einer Texttabelle zur CSV-Tabelle automatisieren.
Die Tabelle im .*txt Format und erstreckt sich über 46 Zeilen. Die Datei wird aus CATIA ausgegeben und enthält u.a. leider auch "unnütze Informationen".
Und mein Problem hat sich soeben verinfacht.
Die Tabelle sieht nun nurnoch wie folgt aus:
Ereignisnummer Befehlswert Sensoren Wert Einheit Kommentar
0 0 Abtastmechanismus\Verbindungen\Zylindrisch.4\Länge 0 Millimeter
1 0,355556 Abtastmechanismus\Verbindungen\Zylindrisch.4\Länge -0,000201002 Millimeter
2 0,711111 Abtastmechanismus\Verbindungen\Zylindrisch.4\Länge -0,00158531 Millimeter
3 1,06667 Abtastmechanismus\Verbindungen\Zylindrisch.4\Länge -0,00415748 Millimeter
4 1,42222 Abtastmechanismus\Verbindungen\Zylindrisch.4\Länge -0,007926 Millimeter
5 1,77778 Abtastmechanismus\Verbindungen\Zylindrisch.4\Länge -0,0129036 Millimeter
6 2,13333 Abtastmechanismus\Verbindungen\Zylindrisch.4\Länge -0,0191072 Millimeter
7 2,48889 Abtastmechanismus\Verbindungen\Zylindrisch.4\Länge -0,0265589 Millimeter
Ich bräuchte nun einen Befehl um die erste Zeile zu löschen und um aus den weiteren Zeilen die Spalten 2 und 4 zu nehmen und mit einem Semikolon zu tennen (der Rest soll ebenfalls übersprungen / gelöscht werden)
also quasi in die Form zu übertragen.....
0 ; 0
0,355556 ; -0,000201002
0,711111 ; -0,00158531
1,06667 ; -0,00415748
1,42222 ; -0,007926
1,77778 ; -0,0129036
2,13333 ; -0,0191072
2,48889 ; -0,0265589
Ich komm bisher leider nur so weit, jeweils eine Spalte einzeln auszulesen mittels
@echo off & setlocal enabledelayedexpansion
)
set "Alt=%CD%\Messwerte2.txt"
set "Neu=%CD%\Messwerte2.csv"
if exist "%Neu%" del "%Neu%"
for /f "usebackq tokens=2 delims=< >" %%i in ("%Alt%") do (
set "A=%%i"
>>"%Neu%" echo !A: =!
)
Vielleicht kann mir ja einer von euch beim Rest behilflich sein.
Danke im Voraus und freundliche Grüße
Joachim
Hallo miteinander,
wie im Vorwort bereits erwähnt, möchte ich im Rahemn einer Bachelor Thesis die Konvertierung einer Texttabelle zur CSV-Tabelle automatisieren.
Die Tabelle im .*txt Format und erstreckt sich über 46 Zeilen. Die Datei wird aus CATIA ausgegeben und enthält u.a. leider auch "unnütze Informationen".
Und mein Problem hat sich soeben verinfacht.
Die Tabelle sieht nun nurnoch wie folgt aus:
Ereignisnummer Befehlswert Sensoren Wert Einheit Kommentar
0 0 Abtastmechanismus\Verbindungen\Zylindrisch.4\Länge 0 Millimeter
1 0,355556 Abtastmechanismus\Verbindungen\Zylindrisch.4\Länge -0,000201002 Millimeter
2 0,711111 Abtastmechanismus\Verbindungen\Zylindrisch.4\Länge -0,00158531 Millimeter
3 1,06667 Abtastmechanismus\Verbindungen\Zylindrisch.4\Länge -0,00415748 Millimeter
4 1,42222 Abtastmechanismus\Verbindungen\Zylindrisch.4\Länge -0,007926 Millimeter
5 1,77778 Abtastmechanismus\Verbindungen\Zylindrisch.4\Länge -0,0129036 Millimeter
6 2,13333 Abtastmechanismus\Verbindungen\Zylindrisch.4\Länge -0,0191072 Millimeter
7 2,48889 Abtastmechanismus\Verbindungen\Zylindrisch.4\Länge -0,0265589 Millimeter
Ich bräuchte nun einen Befehl um die erste Zeile zu löschen und um aus den weiteren Zeilen die Spalten 2 und 4 zu nehmen und mit einem Semikolon zu tennen (der Rest soll ebenfalls übersprungen / gelöscht werden)
also quasi in die Form zu übertragen.....
0 ; 0
0,355556 ; -0,000201002
0,711111 ; -0,00158531
1,06667 ; -0,00415748
1,42222 ; -0,007926
1,77778 ; -0,0129036
2,13333 ; -0,0191072
2,48889 ; -0,0265589
Ich komm bisher leider nur so weit, jeweils eine Spalte einzeln auszulesen mittels
@echo off & setlocal enabledelayedexpansion
)
set "Alt=%CD%\Messwerte2.txt"
set "Neu=%CD%\Messwerte2.csv"
if exist "%Neu%" del "%Neu%"
for /f "usebackq tokens=2 delims=< >" %%i in ("%Alt%") do (
set "A=%%i"
>>"%Neu%" echo !A: =!
)
Vielleicht kann mir ja einer von euch beim Rest behilflich sein.
Danke im Voraus und freundliche Grüße
Joachim
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 130198
Url: https://administrator.de/forum/mittels-batch-eine-texttabelle-in-csv-format-ueberfuehren-und-dabei-eintraege-loeschen-130198.html
Ausgedruckt am: 23.04.2025 um 14:04 Uhr
6 Kommentare
Neuester Kommentar
Moin cherti,
willkommen im Forum.
Ich weiss nicht so genau, was die Unterschiede zwischen Bachelor und Bätcher sein mögen, aber...
Bei den Rumbätschern (zu denen ich mich auch zähle) gilt: "kompliziert wird es irgendwann von alleine."
Deshalb mach da nicht so einen pseudokomplexen Aufriss mit %Neu%, %Alt% und DelayedExpansion.
Am CMD-Prompt würde reichen (">" nicht mit eingeben, ist mein Prompt):
Im Batch müssten die einfachen %i und %j zu %%i und %%j werden und am Ende noch eine Umleitung ( >>pfad\Messwerte2.csv) angehängt werden.
Das war's aber auch.
Grüße
Biber
willkommen im Forum.
Ich weiss nicht so genau, was die Unterschiede zwischen Bachelor und Bätcher sein mögen, aber...
Bei den Rumbätschern (zu denen ich mich auch zähle) gilt: "kompliziert wird es irgendwann von alleine."
Deshalb mach da nicht so einen pseudokomplexen Aufriss mit %Neu%, %Alt% und DelayedExpansion.
Am CMD-Prompt würde reichen (">" nicht mit eingeben, ist mein Prompt):
>for /f "skip=1 tokens=2,4 delims= " %i in (e:\schnipsel\messwerte2.txt) do @echo %i;%j;
0;0;
0,355556;-0,000201002;
0,711111;-0,00158531;
1,06667;-0,00415748;
1,42222;-0,007926;
1,77778;-0,0129036;
2,13333;-0,0191072;
2,48889;-0,0265589;
Im Batch müssten die einfachen %i und %j zu %%i und %%j werden und am Ende noch eine Umleitung ( >>pfad\Messwerte2.csv) angehängt werden.
Das war's aber auch.
Grüße
Biber