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, 1687 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
HTML in Batch und Powershell (9)

Frage von michi-ffm zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch und Powershell (2)

Frage von michi-ffm zum Thema Batch & Shell ...

Batch & Shell
gelöst Mittels Batch eine Uhrzeit aus einer .txt auslesen und verabeiten (4)

Frage von Beatzler zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Verschlüsselung & Zertifikate
gelöst Festplattenverschlüsselung im Ausland (13)

Frage von Nicolaas zum Thema Verschlüsselung & Zertifikate ...

Festplatten, SSD, Raid
gelöst Fehlerhafte Blöcke im RAID 10 (12)

Frage von Kojak-LE zum Thema Festplatten, SSD, Raid ...

Windows Server
gelöst Microsoft-Lizenz CALs und passendes Server-Betriebssystem (12)

Frage von planetIT2016 zum Thema Windows Server ...

Netzwerkgrundlagen
gelöst Cisco SG500 Series LAG hat sich von selbst umgestellt (11)

Frage von Ex0r2k16 zum Thema Netzwerkgrundlagen ...