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, 6653 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 ..
Ähnliche Inhalte
Batch & Shell
Batch mit forfiles - Dateiendung filtern - Dateien löschen (2)

Frage von mschaedler1982 zum Thema Batch & Shell ...

Windows Server
DNS Windows Server 2008R2 alte DNS Einträge löschen lassen (3)

Frage von WinLiCLI zum Thema Windows Server ...

Windows Netzwerk
gelöst Wie DNS Einträge löschen außer durch flushdns (16)

Frage von f.reisenhauer zum Thema Windows Netzwerk ...

Microsoft
Registry Einträge Löschen (Skript) (4)

Frage von Shnuuu zum Thema Microsoft ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(38)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
POS Hardware und alternativen zu Raid 1? (21)

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

Rechtliche Fragen
Hotspot rechtssicher betreiben? (14)

Frage von xSiggix zum Thema Rechtliche Fragen ...

ISDN & Analoganschlüsse
gelöst Splitter - RJ45 zu RJ11? (14)

Frage von Waishon zum Thema ISDN & Analoganschlüsse ...

Viren und Trojaner
Verschlüsselungstrojaner simulieren (12)

Frage von AlbertMinrich zum Thema Viren und Trojaner ...