Logfile auswerten und bestimmte Daten in neue Datei schreiben
Grober Ansatz vorhanden, aber es geht bestimmt besser
Hallo zusammen! Ich lasse täglich jede Stunde einen Report in eine Datei schreiben. Die neuen Daten werden angehängt.
Nun muß ich die Uhrzeit des Reports und einen bestimmten Wert exportieren und in eine neue Datei schreiben.
Die Rohdaten sehen so auszugsweise so aus, habe jetzt nicht alle 24h genommen:
Hier mein grobes Konzept, das ich aus anderen Scripten genommen habe. Was fehlt ist eine Schleife zum auslesen ab Zeile 4 .
Man müßte dann immer 7 Zeilen hoch zählen. Könnt Ihr mir da helfen?
Danke im voraus
mf
Hallo zusammen! Ich lasse täglich jede Stunde einen Report in eine Datei schreiben. Die neuen Daten werden angehängt.
Nun muß ich die Uhrzeit des Reports und einen bestimmten Wert exportieren und in eine neue Datei schreiben.
Die Rohdaten sehen so auszugsweise so aus, habe jetzt nicht alle 24h genommen:
2010-04-14 10:00 AM - Report for
G3xV13 330 669 999 233 2767 3000 18685 231315 250000 2643 17357 20000 297 20703 21000 529 9471 10000 10 7990 8000 0 28 28 0 300 300 0 15675 15928 0 90000 90000 912 2077 3000 2858 37142 40000 379 221 600 389 123 512 2 998 1000 209 9790 9999 131 4869 5000 15424 559 19441 20000 0 1800 1800 0 0 0 199 1801 2000 0 2000 2000 0 2560 2560 0 5 5 0 128 128 0 1250 1250 6003 43730 49733 1337 25171 26508 5 79995 80000 41 7459 7500 26 38 64 253 15675 15928 437 1563 2000 1839 18161 20000 5502 174498 180000 1011 1058 2069 0 0 0 0 2069 2069 3436 56564 60000 2973 57027 60000 3 11997 12000 0 15675 15928 0 256 256 0 63 63 0 200 200 0 1000 1000 2717 283 3000 10 0 10 14 236 250 0 128 128 20 108 128 0 250 250 0 999 999 64 336 400 0 400 400 0 9999 9999 0 200 200 61 1939 2000 1721 6279 8000 0 8000 8000 0 8000 8000 0 1000 1000 0 0 0 6 94 17496000 0 100 100000 4630 30811 36000 738 188 2790 2591 199 1840 926 0 5000 5000 487 0 0 0 0 0 0 60 6940 7000 4512 39488 44000 2791 445 3236 0 500 500 0 0 0 0 0 0 0 0 0 0 0 0 1 4 5 0 0 0 0 0 0 0 100 972000 84 11916 12000 0 0 0 0 0 12000 12000 0 0 0 AgentSC 0 1255 1255 IP_API_A 84 30 114 IP_API_B 0 10 10 IP_Agent 6 0 3 3 IP_Phone 0 12000 12000 IP_ROMax 0 12000 12000 IP_Soft 0 5 5 oneX_Comm 0 12000 12000 R013x.01.2.632.1 G3xV13 A R013x.01.2.632.1 G3x(large) A
2010-04-14 11:00 AM - Data Export
2010-04-14 11:00 AM - Report for
G3xV13 330 669 999 233 2767 3000 18685 231315 250000 2643 17357 20000 297 20703 21000 529 9471 10000 10 7990 8000 0 28 28 0 300 300 0 15675 15928 0 90000 90000 923 2077 3000 2858 37142 40000 379 221 600 389 123 512 2 998 1000 209 9790 9999 131 4869 5000 15424 559 19441 20000 0 1800 1800 0 0 0 199 1801 2000 0 2000 2000 0 2560 2560 0 5 5 0 128 128 0 1250 1250 6003 43730 49733 1337 25171 26508 5 79995 80000 41 7459 7500 26 38 64 253 15675 15928 437 1563 2000 1839 18161 20000 5502 174498 180000 1011 1058 2069 0 0 0 0 2069 2069 3436 56564 60000 2973 57027 60000 3 11997 12000 0 15675 15928 0 256 256 0 63 63 0 200 200 0 1000 1000 2717 283 3000 10 0 10 14 236 250 0 128 128 20 108 128 0 250 250 0 999 999 64 336 400 0 400 400 0 9999 9999 0 200 200 61 1939 2000 1721 6279 8000 0 8000 8000 0 8000 8000 0 1000 1000 0 0 0 6 94 17496000 0 100 100000 4630 30811 36000 738 188 2790 2591 199 1840 926 0 5000 5000 487 0 0 0 0 0 0 60 6940 7000 4512 39488 44000 2791 445 3236 0 500 500 0 0 0 0 0 0 0 0 0 0 0 0 1 4 5 0 0 0 0 0 0 0 100 972000 84 11916 12000 0 0 0 0 0 12000 12000 0 0 0 AgentSC 0 1255 1255 IP_API_A 84 30 114 IP_API_B 0 10 10 IP_Agent 6 0 3 3 IP_Phone 0 12000 12000 IP_ROMax 0 12000 12000 IP_Soft 0 5 5 oneX_Comm 0 12000 12000 R013x.01.2.632.1 G3xV13 A R013x.01.2.632.1 G3x(large) A
2010-04-14 0:00 PM - Data Export
2010-04-14 0:00 PM - Report for
G3xV13 330 669 999 233 2767 3000 18685 231315 250000 2643 17357 20000 293 20707 21000 529 9471 10000 8 7992 8000 0 28 28 0 300 300 0 15675 15928 0 90000 90000 892 2108 3000 2798 37202 40000 379 221 600 389 123 512 2 998 1000 209 9790 9999 131 4869 5000 15424 559 19441 20000 0 1800 1800 0 0 0 199 1801 2000 0 2000 2000 0 2560 2560 0 5 5 0 128 128 0 1250 1250 6003 43730 49733 1337 25171 26508 5 79995 80000 41 7459 7500 26 38 64 253 15675 15928 437 1563 2000 1839 18161 20000 5502 174498 180000 980 1089 2069 0 0 0 0 2069 2069 3351 56649 60000 2905 57095 60000 2 11998 12000 0 15675 15928 0 256 256 0 63 63 0 200 200 0 1000 1000 2717 283 3000 10 0 10 14 236 250 0 128 128 20 108 128 0 250 250 0 999 999 64 336 400 0 400 400 0 9999 9999 0 200 200 61 1939 2000 1721 6279 8000 0 8000 8000 0 8000 8000 0 1000 1000 0 0 0 6 94 17496000 0 100 100000 4630 30811 36000 738 188 2790 2591 199 1840 926 0 5000 5000 487 0 0 0 0 0 0 60 6940 7000 4512 39488 44000 2791 445 3236 0 500 500 0 0 0 0 0 0 0 0 0 0 0 0 1 4 5 0 0 0 0 0 0 0 100 972000 84 11916 12000 0 0 0 0 0 12000 12000 0 0 0 AgentSC 0 1255 1255 IP_API_A 84 30 114 IP_API_B 0 10 10 IP_Agent 6 0 3 3 IP_Phone 0 12000 12000 IP_ROMax 0 12000 12000 IP_Soft 0 5 5 oneX_Comm 0 12000 12000 R013x.01.2.632.1 G3xV13 A R013x.01.2.632.1 G3x(large) A
2010-04-14 1:00 PM - Data Export
2010-04-14 1:00 PM - Report for
G3xV13 330 669 999 233 2767 3000 18685 231315 250000 2643 17357 20000 280 20720 21000 529 9471 10000 9 7991 8000 0 28 28 0 300 300 0 15675 15928 0 90000 90000 805 2195 3000 2559 37441 40000 379 221 600 389 123 512 2 998 1000 209 9790 9999 131 4869 5000 15424 559 19441 20000 0 1800 1800 0 0 0 199 1801 2000 0 2000 2000 0 2560 2560 0 5 5 0 128 128 0 1250 1250 6002 43731 49733 1337 25171 26508 5 79995 80000 41 7459 7500 26 38 64 253 15675 15928 437 1563 2000 1838 18162 20000 5499 174501 180000 889 1180 2069 0 0 0 0 2069 2069 3003 56997 60000 2632 57368 60000 6 11994 12000 0 15675 15928 0 256 256 0 63 63 0 200 200 0 1000 1000 2717 283 3000 10 0 10 14 236 250 0 128 128 20 108 128 0 250 250 0 999 999 64 336 400 0 400 400 0 9999 9999 0 200 200 61 1939 2000 1721 6279 8000 0 8000 8000 0 8000 8000 0 1000 1000 0 0 0 6 94 17496000 0 100 100000 4629 30812 36000 738 188 2790 2591 199 1839 926 0 5000 5000 487 0 0 0 0 0 0 60 6940 7000 4512 39488 44000 2791 445 3236 0 500 500 0 0 0 0 0 0 0 0 0 0 0 0 1 4 5 0 0 0 0 0 0 0 100 972000 84 11916 12000 0 0 0 0 0 12000 12000 0 0 0 AgentSC 0 1255 1255 IP_API_A 84 30 114 IP_API_B 0 10 10 IP_Agent 6 0 3 3 IP_Phone 0 12000 12000 IP_ROMax 0 12000 12000 IP_Soft 0 5 5 oneX_Comm 0 12000 12000 R013x.01.2.632.1 G3xV13 A R013x.01.2.632.1 G3x(large) A
2010-04-14 2:00 PM - Data Export
2010-04-14 2:00 PM - Report for
G3xV13 330 669 999 233 2767 3000 18685 231315 250000 2643 17357 20000 280 20720 21000 529 9471 10000 9 7991 8000 0 28 28 0 300 300 0 15675 15928 0 90000 90000 828 2172 3000 2610 37390 40000 379 221 600 389 123 512 2 998 1000 209 9790 9999 131 4869 5000 15424 559 19441 20000 0 1800 1800 0 0 0 199 1801 2000 0 2000 2000 0 2560 2560 0 5 5 0 128 128 0 1250 1250 6002 43731 49733 1337 25171 26508 5 79995 80000 41 7459 7500 26 38 64 253 15675 15928 437 1563 2000 1838 18162 20000 5499 174501 180000 910 1159 2069 0 0 0 0 2069 2069 3086 56914 60000 2696 57304 60000 16 11984 12000 0 15675 15928 0 256 256 0 63 63 0 200 200 0 1000 1000 2717 283 3000 10 0 10 14 236 250 0 128 128 20 108 128 0 250 250 0 999 999 64 336 400 0 400 400 0 9999 9999 0 200 200 61 1939 2000 1721 6279 8000 0 8000 8000 0 8000 8000 0 1000 1000 0 0 0 6 94 17496000 0 100 100000 4629 30812 36000 738 188 2790 2591 199 1839 926 0 5000 5000 487 0 0 0 0 0 0 60 6940 7000 4512 39488 44000 2791 445 3236 0 500 500 0 0 0 0 0 0 0 0 0 0 0 0 1 4 5 0 0 0 0 0 0 0 100 972000 84 11916 12000 0 0 0 0 0 12000 12000 0 0 0 AgentSC 0 1255 1255 IP_API_A 84 30 114 IP_API_B 0 10 10 IP_Agent 6 0 3 3 IP_Phone 0 12000 12000 IP_ROMax 0 12000 12000 IP_Soft 0 5 5 oneX_Comm 0 12000 12000 R013x.01.2.632.1 G3xV13 A R013x.01.2.632.1 G3x(large) A
Hier mein grobes Konzept, das ich aus anderen Scripten genommen habe. Was fehlt ist eine Schleife zum auslesen ab Zeile 4 .
Man müßte dann immer 7 Zeilen hoch zählen. Könnt Ihr mir da helfen?
@echo off & setlocal enabledelayedexpansion
set Line=2
:ProcessCall
for /f "usebackq delims=" %%b in (Report.txt) do if not defined Zeile set "Zeile=%%b"
call :ProcessLine1 "!Zeile!"
set Zeile=
for /f "usebackq skip=%line% delims=" %%b in (Report.txt) do if not defined Zeile set "Zeile=%%b"
call :ProcessLine2 !Zeile!
)
goto :eof
REM ----------------------------------------------------------------------------
:ProcessLine1
REM Uhrzeit auslesen
for /f "eol=: tokens=1-5 delims=: " %%i in (%1) do set "Uhrzeit=%%j %%k %%l"
goto :eof
REM ----------------------------------------------------------------------------
:ProcessLine2
REM Wert auslesen
for /L %%i in (1,1,34) do shift
set "Anzahl=%~1"
REM ----------------------------------------------------------------------------
:Write
rem >>"%XPfad%\%Load%"
>> Auszug.txt echo %Uhrzeit% %Anzahl%
goto :eof
Danke im voraus
mf
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 140665
Url: https://administrator.de/contentid/140665
Ausgedruckt am: 23.11.2024 um 02:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo Mikefield!
Ich würde es ziemlich ähnlich versuchen, allerdings auf den Abstand von jeweiils 2 Zeilen zwischen der "Report for"-Zeile und den Daten setzen:
Soferne die Anzahl tatsächlich nur ausgegeben werden soll, könnte noch die Zuweisung zur Variablen eingespart und aus den Zeilen 21 und 22
gemacht werden.
Grüße
bastla
Ich würde es ziemlich ähnlich versuchen, allerdings auf den Abstand von jeweiils 2 Zeilen zwischen der "Report for"-Zeile und den Daten setzen:
@echo off & setlocal
set "Ein=D:\Logfile.txt"
set "Aus=D:\Auszug.txt"
del "%Aus%" 2>nul
for /f "tokens=1-5 delims=: " %%a in ('findstr /n /c:"M - Report for" "%Ein%"') do (
set "Uhrzeit= %%c:%%d %%e"
set /a Line=%%a+1
call :ProcessLine1
)
goto :eof
:ProcessLine1
set Zeile=
for /f "usebackq skip=%Line% delims=" %%i in ("%Ein%") do if not defined Zeile set "Zeile=%%i"
call :ProcessLine2 %Zeile%
goto :eof
:ProcessLine2
for /L %%i in (1,1,34) do shift
set "Anzahl=%1"
>>"%Aus%" echo %Uhrzeit:~-8% %Anzahl%
goto :eof
>>"%Aus%" echo %Uhrzeit:~-8% %1
Grüße
bastla