Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Mittels batch eine texttabelle in csv format überführen und dabei einträge löschen

Frage Entwicklung Batch & Shell

Mitglied: cherti

cherti (Level 1) - Jetzt verbinden

25.11.2009, aktualisiert 12:30 Uhr, 6566 Aufrufe, 6 Kommentare

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
Mitglied: miniversum
25.11.2009 um 12:46 Uhr
Warum nicht einfach so? (ungetestet):
01.
@echo off 
02.
set "Alt=%CD%\Messwerte2.txt" 
03.
set "Neu=%CD%\Messwerte2.csv" 
04.
 
05.
if exist "%Neu%" del "%Neu%" 
06.
for /f "skip=1 tokens=2,4 delims= " %%i in ("%Alt%") do >>"%Neu%" echo %%i ; %%j
was das skip und tokens bewirkt kansnt du ind er hilfe zum For Befehl nachlesen
Bitte warten ..
Mitglied: cherti
25.11.2009 um 13:49 Uhr
da tut sich leider nix

....mindestensdreißigzeichenkommentar
Bitte warten ..
Mitglied: miniversum
25.11.2009 um 16:14 Uhr
Ändere mal beim for das
("%Alt%") do
in
('type "%Alt%"') do
Bitte warten ..
Mitglied: Biber
25.11.2009 um 18:10 Uhr
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):
>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
Bitte warten ..
Mitglied: cherti
27.11.2009 um 09:56 Uhr
Nun, der Bätcher kennt sich im Batchen aus, der Bachelor in in meinem Fall in Mechatronik, sollte er zumindest ;)

Danke für eure Hilfestellungen, habs nun geschafft. Batchfile sieht nun wie folgt aus:

01.
@echo off & setlocal enabledelayedexpansion  
02.
   
03.
04.
set "Alt=%CD%\Messwerte2.txt" 
05.
set "Neu=%CD%\Messwerte2.csv" 
06.
 
07.
 
08.
if exist "%Neu%" del "%Neu%" 
09.
 
10.
for /f "usebackq skip=1 tokens=2,4 delims=<	>" %%i in ("%Alt%") do @echo %%i;%%j >>"%Neu%"
Bitte warten ..
Mitglied: miniversum
27.11.2009 um 12:46 Uhr
Wenn du es nicht noch für was anderes brauchst, kannst du:
in Zeile 1: "& setlocal enabledelayedexpansion" weglasen
in Zeile 3: ")" weglasen
in Zeile 10: "usebackq" weglasen und bei delims die "<>". Leerzeichen brauchst du dann auch nur eines.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Batch zum bearbeiten mehrerer CSV (3)

Frage von Matzus87 zum Thema Batch & Shell ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...