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

Maschinenlogs in Batch aufbereiten

Frage Entwicklung Batch & Shell

Mitglied: Lyriker

Lyriker (Level 1) - Jetzt verbinden

17.01.2013, aktualisiert 17:50 Uhr, 1697 Aufrufe, 3 Kommentare

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:

01.
Date :2013.1.4 
02.
 
03.
Save Recording  : 8.5.38 Clock 
04.
 
05.
Automatik : T#4m18s 
06.
 
07.
Aktiv : T#3m27s 
08.
 
09.
Error : T#18s 
10.
 
11.
Magazine : T#51s 
12.
 
13.
Out trans. : T#0ms 
14.
 
15.
Schnitte: 16 
16.
 
17.
Teil abgeschoben: 14 
18.
 
19.
Number of Parts: 13
Script (erste Bereinigung):

01.
setlocal enabledelayedexpansion 
02.
@echo off 
03.
del ausgabetext.csv 
04.
set "filename=20130104.txt" 
05.
set "tempfile=tmp.txt" 
06.
FOR /F "delims=|" %%f IN (%filename%) DO set /p =%%f<nul|echo.%%f >>%tempfile% 
07.
 
08.
for /F "delims=" %%a in (%tempfile%) do ( 
09.
set text=%%a 
10.
set text=!text: =! 
11.
set text=!text:^Clock=^! 
12.
set text=!text:^T#=^! 
13.
set text=!text:^:=^;! 
14.
set text=!text:^^=^! 
15.
echo !text!>>ausgabetext.csv 
16.
17.
del tmp.txt
Dann wird diese Datei (ausgabetext.csv) erzeugt:

01.
Date;2013.1.4 
02.
SaveRecording;8.5.38 
03.
Automatik;4m18s 
04.
Aktiv;3m27s 
05.
Error;18s 
06.
Magazine;51s 
07.
Outtrans.;1ms 
08.
Schnitte;16 
09.
Teilabgeschoben;14 
10.
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
Mitglied: rubberman
17.01.2013 um 20:07 Uhr
Hallo Lyriker.

Ich verstehe zwar die Zeile Out trans. im Original nicht (0ms = 0 Millisekunden?), aber vielleicht funktioniert es ja so:
01.
@echo off 
02.
setlocal EnableDelayedExpansion 
03.
 
04.
set "filename=20130104.txt" 
05.
set "outfile=ausgabetext.csv" 
06.
 
07.
>"%outfile%" ( 
08.
  for /f "usebackq tokens=1* delims=:" %%i in ("%filename%") do ( 
09.
    set "column1=%%i" 
10.
    set "column1=!column1: =!" 
11.
    for /f "tokens=1,2" %%k in ("%%j") do ( 
12.
      set "column2=%%k" 
13.
      if /i "%%l"=="Clock" ( 
14.
        for /f "tokens=1-3 delims=." %%I in ("%%k") do ( 
15.
          set /a "h=10%%I, m=10%%J, s=10%%K" 
16.
          set "column2=!h:~-2!:!m:~-2!:!s:~-2!" 
17.
18.
      ) else if /i "!column2:~,2!"=="T#" ( 
19.
        for /f "tokens=1,2 delims=T#ms" %%I in ("%%k") do ( 
20.
          if "%%J"=="" ( 
21.
            set /a "m=100, s=10%%I" 
22.
          ) else ( 
23.
            set /a "m=10%%I, s=10%%J" 
24.
25.
          set "column2=00:!m:~-2!:!s:~-2!" 
26.
27.
28.
      echo !column1!;!column2! 
29.
30.
31.
)
Grüße
rubberman
Bitte warten ..
Mitglied: Lyriker
18.01.2013 um 08:37 Uhr
Puh! Das ist mal eine verdammt gute Lösung! Danke vielmals!
Bitte warten ..
Mitglied: Lyriker
18.01.2013 um 10:05 Uhr
PS: Ja das ist Milisekunde (00:00:00:001) = 1ms
da das aber der 00 - Wert ist (also es ist nichts passiert) kann man das vernachlässigen. jede Aktion ist > 1s

super!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Mehrzeiligen Powershell-Befehl mit Batch ausführen (3)

Frage von 133202 zum Thema Batch & Shell ...

Batch & Shell
gelöst EQU - GLEICH - BATCH (9)

Frage von freshman2017 zum Thema Batch & Shell ...

Batch & Shell
gelöst Windows 10 Batch für Datum und Uhrzeit setzen (18)

Frage von zeroblue2005 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(6)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(40)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Windows 10
gelöst Windows 10 Home "Netzlaufwerk nicht bereit" (19)

Frage von Oggy01 zum Thema Windows 10 ...

DNS
gelöst Komplette TLD Überschreiben bzw eigene Definieren (10)

Frage von Herbrich19 zum Thema DNS ...

Exchange Server
gelöst RU 17 Exchange 2010 . Erfahrungen? (10)

Frage von keine-ahnung zum Thema Exchange Server ...

Datenbanken
gelöst MySQL Zeiterfassungs-Problematik (wer ist eingecheckt) (9)

Frage von NativeMode zum Thema Datenbanken ...