Maschinenlogs in Batch aufbereiten
Nachdem ich das Problem "Leerzeilen aus txt Dateien entfernen" und "entferne ungewollte Zeichen aus der TXT Datei und speichere das Ganze in CSV Dateien um" erfolgreich mit Hilfe der Beispiele aus dem Forum hier selbst geschafft habe, suche ich nun nach Hilfe zu "Wie wandle ich in der Batch 4m3s (4 min 3 sek) in 00:04:03 um"?
Nachdem ich das Problem "Leerzeilen aus txt Dateien entfernen" und "entferne ungewollte Zeichen aus der TXT Datei und speichere das Ganze in CSV Dateien um" erfolgreich mit Hilfe der Beispiele aus dem Forum hier selbst geschafft habe, suche ich nun nach Hilfe zu "Wie wandle ich in der Batch 4m3s (4 min 3 sek) in 00:04:03 um"?
Am Schluss soll eine csv die man in die Datenbank verpacken kann raus kommen.
Die Vorgabe ist, ein Log einer Maschine in ein Datenbank kompatibles Format zu wandeln...
txtDatei:
Script (erste Bereinigung):
Dann wird diese Datei (ausgabetext.csv) erzeugt:
Alles soweit spitze. Doch die Zeile:
SaveRecording;8.5.38 sollte eigentlich SaveRecording;08:05:38
und die Zeilen ab Automatik;4m18s sollten eigentlich Automatik;00:04:18 sein
und Outtrans.;1ms = Outtrans.;00:00:01 etc.
Bin langsam fertig mit meinem Latein.. wäre jemand so nett mir zu helfen, mich vieleicht auf den richtigen Weg zu bringen?
Wäre äusserst dankbar, sitze schon seit Stunden damit herum...
Wenn Schreibfehler gefunden werden, können diese gern behalten werden :D
Nachdem ich das Problem "Leerzeilen aus txt Dateien entfernen" und "entferne ungewollte Zeichen aus der TXT Datei und speichere das Ganze in CSV Dateien um" erfolgreich mit Hilfe der Beispiele aus dem Forum hier selbst geschafft habe, suche ich nun nach Hilfe zu "Wie wandle ich in der Batch 4m3s (4 min 3 sek) in 00:04:03 um"?
Am Schluss soll eine csv die man in die Datenbank verpacken kann raus kommen.
Die Vorgabe ist, ein Log einer Maschine in ein Datenbank kompatibles Format zu wandeln...
txtDatei:
Date :2013.1.4
Save Recording : 8.5.38 Clock
Automatik : T#4m18s
Aktiv : T#3m27s
Error : T#18s
Magazine : T#51s
Out trans. : T#0ms
Schnitte: 16
Teil abgeschoben: 14
Number of Parts: 13
Script (erste Bereinigung):
setlocal enabledelayedexpansion
@echo off
del ausgabetext.csv
set "filename=20130104.txt"
set "tempfile=tmp.txt"
FOR /F "delims=|" %%f IN (%filename%) DO set /p =%%f<nul|echo.%%f >>%tempfile%
for /F "delims=" %%a in (%tempfile%) do (
set text=%%a
set text=!text: =!
set text=!text:^Clock=^!
set text=!text:^T#=^!
set text=!text:^:=^;!
set text=!text:^^=^!
echo !text!>>ausgabetext.csv
)
del tmp.txt
Dann wird diese Datei (ausgabetext.csv) erzeugt:
Date;2013.1.4
SaveRecording;8.5.38
Automatik;4m18s
Aktiv;3m27s
Error;18s
Magazine;51s
Outtrans.;1ms
Schnitte;16
Teilabgeschoben;14
NumberofParts;13
Alles soweit spitze. Doch die Zeile:
SaveRecording;8.5.38 sollte eigentlich SaveRecording;08:05:38
und die Zeilen ab Automatik;4m18s sollten eigentlich Automatik;00:04:18 sein
und Outtrans.;1ms = Outtrans.;00:00:01 etc.
Bin langsam fertig mit meinem Latein.. wäre jemand so nett mir zu helfen, mich vieleicht auf den richtigen Weg zu bringen?
Wäre äusserst dankbar, sitze schon seit Stunden damit herum...
Wenn Schreibfehler gefunden werden, können diese gern behalten werden :D
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 197184
Url: https://administrator.de/contentid/197184
Ausgedruckt am: 25.11.2024 um 07:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo Lyriker.
Ich verstehe zwar die Zeile Out trans. im Original nicht (0ms = 0 Millisekunden?), aber vielleicht funktioniert es ja so:
Grüße
rubberman
Ich verstehe zwar die Zeile Out trans. im Original nicht (0ms = 0 Millisekunden?), aber vielleicht funktioniert es ja so:
@echo off
setlocal EnableDelayedExpansion
set "filename=20130104.txt"
set "outfile=ausgabetext.csv"
>"%outfile%" (
for /f "usebackq tokens=1* delims=:" %%i in ("%filename%") do (
set "column1=%%i"
set "column1=!column1: =!"
for /f "tokens=1,2" %%k in ("%%j") do (
set "column2=%%k"
if /i "%%l"=="Clock" (
for /f "tokens=1-3 delims=." %%I in ("%%k") do (
set /a "h=10%%I, m=10%%J, s=10%%K"
set "column2=!h:~-2!:!m:~-2!:!s:~-2!"
)
) else if /i "!column2:~,2!"=="T#" (
for /f "tokens=1,2 delims=T#ms" %%I in ("%%k") do (
if "%%J"=="" (
set /a "m=100, s=10%%I"
) else (
set /a "m=10%%I, s=10%%J"
)
set "column2=00:!m:~-2!:!s:~-2!"
)
)
echo !column1!;!column2!
)
)
)
rubberman