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

Logfile auswerten und bestimmte Daten in neue Datei schreiben

Frage Entwicklung Batch & Shell

Mitglied: Mikefield

Mikefield (Level 1) - Jetzt verbinden

14.04.2010 um 21:12 Uhr, 4065 Aufrufe, 5 Kommentare

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:

01.
2010-04-14  10:00 AM  -  Report for  
02.
 
03.
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 
04.
 
05.
2010-04-14  11:00 AM  -  Data Export 
06.
 
07.
2010-04-14  11:00 AM  -  Report for  
08.
 
09.
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 
10.
 
11.
2010-04-14  0:00 PM  -  Data Export 
12.
 
13.
2010-04-14  0:00 PM  -  Report for  
14.
 
15.
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 
16.
 
17.
2010-04-14  1:00 PM  -  Data Export 
18.
 
19.
2010-04-14  1:00 PM  -  Report for  
20.
 
21.
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 
22.
 
23.
2010-04-14  2:00 PM  -  Data Export 
24.
 
25.
2010-04-14  2:00 PM  -  Report for  
26.
 
27.
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?

01.
@echo off & setlocal enabledelayedexpansion 
02.
 
03.
set Line=2 
04.
 
05.
:ProcessCall 
06.
 
07.
for /f "usebackq delims=" %%b in (Report.txt) do if not defined Zeile set "Zeile=%%b" 
08.
    call :ProcessLine1 "!Zeile!" 
09.
 
10.
    set Zeile= 
11.
    for /f "usebackq skip=%line% delims=" %%b in (Report.txt) do if not defined Zeile set "Zeile=%%b" 
12.
    call :ProcessLine2 !Zeile! 
13.
14.
 
15.
goto :eof  
16.
 
17.
REM  ---------------------------------------------------------------------------- 
18.
:ProcessLine1 
19.
REM Uhrzeit auslesen  
20.
for /f "eol=: tokens=1-5 delims=: " %%i in (%1) do set "Uhrzeit=%%j %%k %%l" 
21.
goto :eof 
22.
 
23.
REM  ---------------------------------------------------------------------------- 
24.
:ProcessLine2 
25.
REM Wert auslesen 
26.
for /L %%i in (1,1,34) do shift 
27.
set "Anzahl=%~1" 
28.
 
29.
REM  ---------------------------------------------------------------------------- 
30.
:Write 
31.
 
32.
rem >>"%XPfad%\%Load%"  
33.
>> Auszug.txt echo %Uhrzeit%	%Anzahl% 
34.
goto :eof
Danke im voraus

mf
Mitglied: bastla
14.04.2010 um 22:12 Uhr
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:
01.
@echo off & setlocal 
02.
set "Ein=D:\Logfile.txt" 
03.
set "Aus=D:\Auszug.txt" 
04.
 
05.
del "%Aus%" 2>nul 
06.
for /f "tokens=1-5 delims=: " %%a in ('findstr /n /c:"M  -  Report for" "%Ein%"') do ( 
07.
    set "Uhrzeit= %%c:%%d %%e" 
08.
    set /a Line=%%a+1 
09.
    call :ProcessLine1 
10.
11.
goto :eof 
12.
 
13.
:ProcessLine1 
14.
set Zeile= 
15.
for /f "usebackq skip=%Line% delims=" %%i in ("%Ein%") do if not defined Zeile set "Zeile=%%i" 
16.
call :ProcessLine2 %Zeile% 
17.
goto :eof 
18.
 
19.
:ProcessLine2 
20.
for /L %%i in (1,1,34) do shift 
21.
set "Anzahl=%1" 
22.
>>"%Aus%" echo %Uhrzeit:~-8% %Anzahl%  
23.
goto :eof
Soferne die Anzahl tatsächlich nur ausgegeben werden soll, könnte noch die Zuweisung zur Variablen eingespart und aus den Zeilen 21 und 22
>>"%Aus%" echo %Uhrzeit:~-8% %1
gemacht werden.

Grüße
bastla
Bitte warten ..
Mitglied: Mikefield
15.04.2010 um 09:37 Uhr
Hat wunderbar funktioniert! Besten Dank. Die Umwandlung in 24h Uhrzeit bekomme ich dann hin.

Aber eine Frage habe ich noch: Wie kann man gerade und ungerade Zahlen auswerten?
Also wenn Zahl x gerade dann Parameter auf 2 und wenn ungerade dann auf 1 setzen.

mf
Bitte warten ..
Mitglied: bastla
15.04.2010 um 10:42 Uhr
Hallo Mikefield!
Wie kann man gerade und ungerade Zahlen auswerten?
Dafür würde ich einfach die letzte Stelle der Zahl prüfen, etwa:
echo %Zahl:~-1%|findstr "0 2 4 6 8">nul && set Param=2 || set Param=1
Grüße
bastla
Bitte warten ..
Mitglied: Mikefield
16.04.2010 um 22:23 Uhr
Hallo Bastler,

das ist ja einfacher als gedacht! Danke.

Ich wußte, das ich irgendwo eine andere Lösung hatte, hatte es die ganze Zeit gesucht, aber nicht gefunden.
Hier aber, war in einer dunklen Ecke der HD zu Hause versteckt (bin die Woche über auf "Montage"), eine Alternative:

01.
SET /A "GeradeUngerade=NUMBER %% 2" 
02.
IF %GeradeUngerade%==0 set "GU=0" & GOTO Ausgabe 
03.
IF %GeradeUngerade%==1 set "GU=1" & GOTO Ausgabe
mf
Bitte warten ..
Mitglied: bastla
17.04.2010 um 08:00 Uhr
Hallo Mikefield!

Das wäre die "klassische" Vorgangsweise ...

Noch eine Anmerkung: Eigentlich ließe sich das Ganze auf eine Zeile reduzieren:
SET /A "GU=NUMBER %% 2" & GOTO Ausgabe
Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(2)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...