Top-Themen

Aktuelle Themen (A bis Z)

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

.txt in jeder zeile auf zeichensatz überprüfen (ändert sich)

Mitglied: Silentuser

Silentuser (Level 1) - Jetzt verbinden

16.08.2007, aktualisiert 20.08.2007, 6134 Aufrufe, 6 Kommentare

Hallo es geht um folgenen Beitrag: https://www.administrator.de/index.php?content=34e67b04934b68b8de4c96020 ...

Guten Morgen,

wie gesagt es geht um diesen Beitrag hier: https://www.administrator.de/forum/eventlog.txt-filtern-anhand-von-ziffe ...
(sollte man lesen damit man vesteht was ich meine)




Das ganze funktioniert alles einwandfrei, leider habe ich bei meiner fragestellung ganz fergessen das sich ja das Datum verändert und somit auch der Zeichensatz.

D.h.


wenn das Datum auf:
01.
1/1/2007 steht, ist z.B der Zeichensatz 18 
02.
1/10/2007 steht, ist der Zeichensatz 19 
03.
2/1/2007 steht ist, der Zeichensatz 18 
04.
10/10/2007 steht, ist der Zeichensatz 20
Ihr versteht was ich meine?

Das ganze ist ja ein Script und soll beim Kunden installiert werden, und da währe es natürlich hilfreich nicht alle 10 Tage jeden monat und alle 10 monate jedes Jahr das Script umschreiben zu müssen...

Ich weiß das ganze is nich so einfach, z.Z wird die log Datei ja durch TAB-Space getrennt, das einzige was ich noch machen könnte ist die Informationen der Zeilen nicht durch TAB-Space sonder durch komma zu trennen, aber da bringt das mit dem Zeichensatz auch nich wirklich viel....

das sähe dann so aus:
01.
8/14/2007,17:02:54,4,0,1002,Winlogon,N/A,WS42,blabla 
02.
8/14/2007,17:03:17,4,0,1002,Winlogon,N/A,WS42,balbalblalbala

(Die 4 nach der Uhrzeit soll überprüft werden)


Hier nochmal dei .bat die die .txt auf den 19ten Zeichensatz überprüft


01.
@echo off & setlocal 
02.
set "Log=C:ProgrammeResource Kitapp.txt" 
03.
set "Err=C:ProgrammeResource KitError-app.txt" 
04.
set "Code=1" 
05.
 
06.
if exist "%Err%" del "%Err%" 
07.
for /f "usebackq delims=" %%i in ("%Log%") do call :ProcessLine "%%i" 
08.
if exist "%Err%" type "%Err%" 
09.
goto :eof 
10.
 
11.
:ProcessLine 
12.
set "Line=%~1" 
13.
if "%Line:~19,1%"=="%Code%" echo %Line%>>"%Err%"         <------------ hier muss die 19 verändert werden 
14.
goto :eof
Hat jemand eine Idee was man da machen kann?
z.B. den Zeichensatz(die länge) vom Datum überprüfen und dem entsprechend den Zeichensatz in der .bat zu editieren.
Mitglied: Biber
16.08.2007 um 10:55 Uhr
Moin Silentuser,

in diesem Fall ist es ja nicht nicht sinnvoll, die einzelne Textzeile als Ganzes mit einer fixen Tabellenstruktur (alle "Spalten" gleich lang aufzufassen.
Mit der Batch FOR /F-Anweisung kannst Du die Zeile zerlegen.

Beispiel: Ersetze den Block :ProcessLine wie folgt:
01.
... 
02.
:ProcessLine 
03.
For /f "delims=, tokens=1,2,3,*" %%i in (%1) Do if %%k GEQ %Code% ( 
04.
 echo [Errorcode: %%k] [logdate:%%i,%%j] [Errortext-,%%l] 
05.
)  
06.
goto :eof
Damiz wird die jeweilige Zeile (kommt an als Parameter %1) zerlegt in Tokens ("Satzteile"), deren Delimiter jeweils ein Komma ist.
Das 1. Token %%i entspricht dem Datum,
das 2. Token %%j entspricht der Uhrzeit,
das 3. Token %%k entspricht dem Errorcode,
das 4. Token %%l entspricht dem Rest der Zeile,

Im obigen Beispiel lasse ich alles mit einem 3.Token/Errorcode GEQ (größer gleich) Deinem festgelegten %Code% anzeigen.
So kannst Du Dir aussuchen, was und wie Du in die Error-Logdatei schreiben willst.

Grüße
Biber
Bitte warten ..
Mitglied: Silentuser
16.08.2007 um 11:38 Uhr
Vielen Dank, so sollte es funktionieren

Leider noch nich ganz


Hier noch mal der angepasste Quellcode

01.
@echo & setlocal 
02.
set "Log=C:\Programme\Resource Kit\app.txt" 
03.
set "Err=C:\Programme\Resource Kit\Error-app.txt" 
04.
set "Code=1" 
05.
 
06.
if exist "%Err%" del "%Err%" 
07.
for /f "usebackq delims=" %%i in ("%Log%") do call :ProcessLine "%%i" 
08.
if exist "%Err%" type "%Err%" 
09.
rem start Filter-WARNING-APP.bat 
10.
pause 
11.
exit 
12.
goto :eof 
13.
 
14.
:ProcessLine 
15.
For /f "delims=, tokens=1,2,3,*" %%i in (%1) Do if %%k GEQ %Code% ( 
16.
 echo [Errorcode: %%k] [logdate:  %%i -- %%j] [Errortext:  %%l]>>"%Err%" 
17.
)  
18.
goto :eof
also sowie es dort steht schreibt er mir nur die ersten 10 zeilen der "app.txt" in die "error-app.txt" ohne sie zu filtern als Error code bringt er mir die 4 (welche auch dem Error Code in der app.txt in den ersten 10 Zeilen entspricht.

so sieht das ergebniss aus:

01.
[Errorcode: 4] [logdate:8/14/2007 -- 17:02:54] [Errortext: ........ ] 
02.
[Errorcode: 4] [logdate:8/14/2007 -- 17:03:17] [Errortext: .......  ] 
03.
[Errorcode: 4] [logdate:8/14/2007 -- 17:04:46] [Errortext: .......  ] 
04.
[Errorcode: 4] [logdate:8/16/2007 -- 07:56:23] [Errortext: .......  ] 
05.
[Errorcode: 4] [logdate:8/16/2007 -- 07:56:23] [Errortext:  ....... ] 
06.
[Errorcode: 4] [logdate:8/16/2007 -- 07:56:32] [Errortext:  ....... ] 
07.
[Errorcode: 4] [logdate:8/16/2007 -- 07:56:32] [Errortext: .........]  
08.
usw. usw....  
09.
 
10.
 

komm nich dahinter warum er nich nach der 1 filtert und warum er nur die ersten 10 zeilen nimmt (in den ersten 10 zeilen kommt aber auch nich der error-code "1" vor !?)

Aber vielen Dank ich (wir) sind schon auf dem richtigen weg
Bitte warten ..
Mitglied: Biber
17.08.2007 um 01:01 Uhr
Tja, Silentuser,

sehe mit bloßem Auge den Denk- oder Tippfehler auch nicht.
Aber ich habe bei unserem WebMassa mal darum gebeten, hier weitere 35cm Platz unterhalb dieses Kommentars eingeräumt zu bekommen.
Geht klar!

Dann poste doch einfach mal die ersten drei dutzend Zeilen der Logdatei, dann kommen wir vielleicht dem Bug auf die Spur...

Grüße
Biber
Bitte warten ..
Mitglied: Silentuser
17.08.2007 um 08:13 Uhr
na das mach ich doch klatt

nochmal die "Filter-ERROR-APP.bat"

01.
@echo & setlocal 
02.
set "Log=C:\Programme\Resource Kit\app.txt" 
03.
set "Err=C:\Programme\Resource Kit\Error-app.txt" 
04.
set "Code=1" 
05.
 
06.
if exist "%Err%" del "%Err%" 
07.
for /f "usebackq delims=" %%i in ("%Log%") do call :ProcessLine "%%i" 
08.
if exist "%Err%" type "%Err%" 
09.
rem start Filter-WARNING-APP.bat 
10.
pause 
11.
exit 
12.
goto :eof 
13.
 
14.
:ProcessLine 
15.
For /f "delims=, tokens=1,2,3,*" %%i in (%1) Do if %%k GEQ %Code% ( 
16.
 echo [Errorcode: %%k] [logdate:  %%i -- %%j] [Errortext:  %%l]>>"%Err%" 
17.
)  
18.
goto :eof
die ganze "app.txt":

01.
8/16/2007,07:56:23,4,0,0,AntiVirusKit Client,N/A,WS42,Info: Service started   
02.
8/16/2007,07:56:23,4,0,0,AVKProxy,N/A,WS42,Service started   
03.
8/16/2007,07:56:32,4,2,17055,MSSQLSERVER,N/A,WS42,17052 :  Microsoft SQL Server  2000 - 8.00.760 (Intel X86)  	Dec 17 2002 14:22:05  	Copyright (c) 1988-2003 Microsoft Corporation 	Desktop Engine on Windows NT 5.1 (Build 2600: Service Pack 2)      
04.
8/16/2007,07:56:32,4,2,17055,MSSQLSERVER,N/A,WS42,17104 :  Serverprozess-ID ist 132.     
05.
8/16/2007,07:56:32,4,2,17176,MSSQLSERVER,N/A,WS42,This instance of SQL Server last reported using a process id of 544 at 14.08.2007 17:04:48 (local) 14.08.2007 15:04:48 (UTC).   
06.
8/16/2007,07:56:32,4,2,17055,MSSQLSERVER,N/A,WS42,17162 :  SQL Server startet mit Prioritätsklasse 'normal' (1 CPU vorgefunden).     
07.
8/16/2007,07:56:32,4,0,1807,SecurityCenter,N/A,WS42,Der Dienst "Sicherheitscenter" wurde beendet. Die Ausführung wurde durch eine Gruppenrichtlinie verhindert.   
08.
8/16/2007,07:56:32,4,1,501,Windows Server Update Services,N/A,WS42,Der Dienst "Update Services" wurde gestartet.   
09.
8/16/2007,07:56:33,4,2,17055,MSSQLSERVER,N/A,WS42,17124 :  SQL Server wurde für die Verarbeitung im thread-Modus konfiguriert.     
10.
8/16/2007,07:56:33,4,2,17055,MSSQLSERVER,N/A,WS42,17125 :  Die dynamic-Sperrenreservierung wird verwendet. [500] Sperrenblöcke, [1000] Sperrenbesitzerblöcke.     
11.
8/16/2007,07:56:36,4,2,17055,MSSQLSERVER,N/A,WS42,17834 :  Verwendet 'SSNETLIB.DLL', Version '8.0.766'.     
12.
8/16/2007,07:56:36,4,2,17055,MSSQLSERVER,N/A,WS42,19013 :  SQL Server überwacht 192.168.1.170: 1433.     
13.
8/16/2007,07:56:36,4,2,17055,MSSQLSERVER,N/A,WS42,19013 :  SQL Server überwacht 127.0.0.1: 1433.     
14.
8/16/2007,07:56:36,4,2,17055,MSSQLSERVER,N/A,WS42,19013 :  SQL Server überwacht TCP, Shared Memory, Named Pipes.     
15.
8/16/2007,07:56:36,4,2,17055,MSSQLSERVER,N/A,WS42,17126 :  SQL Server ist bereit für Clientverbindungen     
16.
8/16/2007,07:56:41,1,0,0,AVKWCtl,N/A,WS42,Der Filter Treiber konnte aus dem folgenden Grund nicht gestartet werden: Error loading GDMnIcpt (C:\WINDOWS\system32\drivers\MiniIcpt.sys): 2   
17.
8/16/2007,07:56:50,4,2,17055,MSSQLSERVER,N/A,WS42,17052 :  Wiederherstellung abgeschlossen.     
18.
8/16/2007,07:57:13,4,0,1704,SceCli,N/A,WS42,Die Sicherheitsrichtlinie in den Gruppenrichtlinienobjekten wurde erfolgreich angewendet.   
19.
8/16/2007,07:57:36,1,1,421,Windows Server Update Services,N/A,WS42,Die Verbindungsherstellung mit der Datenbank ist fehlgeschlagen. Ursache=SQL Server does not exist or access denied.. Verbindungszeichenfolge: Data Source=WS42\WSUS;Initial Catalog=SUSDB;Connection Timeout=60;Application Name=WSUS SQL Connection;Trusted_Connection=Yes;Pooling='true'; Max Pool Size = 100   
20.
8/16/2007,08:03:26,4,1,4137,Ci,N/A,WS42,CI wurde für Katalog c:\system volume information\catalog.wci gestartet.   
21.
8/16/2007,08:03:30,4,1,4137,Ci,N/A,WS42,CI wurde für Katalog c:\dokumente und einstellungen\all users\anwendungsdaten\microsoft\visio\catalog.wci gestartet.   
22.
8/16/2007,08:03:42,4,1,4137,Ci,N/A,WS42,CI wurde für Katalog c:\inetpub\catalog.wci gestartet.   
23.
8/16/2007,08:10:31,4,2,17055,MSSQLSERVER,N/A,WS42,17147 :  SQL Server beendet, da das System heruntergefahren wird.     
24.
8/16/2007,08:12:21,4,0,0,AntiVirusKit Client,N/A,WS42,Info: Service started   
25.
8/16/2007,08:12:21,4,0,0,AVKProxy,N/A,WS42,Service started   
26.
8/16/2007,08:12:29,4,2,17055,MSSQLSERVER,N/A,WS42,17052 :  Microsoft SQL Server  2000 - 8.00.760 (Intel X86)  	Dec 17 2002 14:22:05  	Copyright (c) 1988-2003 Microsoft Corporation 	Desktop Engine on Windows NT 5.1 (Build 2600: Service Pack 2)      
27.
8/16/2007,08:12:29,4,2,17055,MSSQLSERVER,N/A,WS42,17104 :  Serverprozess-ID ist 132.     
28.
8/16/2007,08:12:29,4,2,17176,MSSQLSERVER,N/A,WS42,This instance of SQL Server last reported using a process id of 132 at 16.08.2007 08:10:33 (local) 16.08.2007 06:10:33 (UTC).   
29.
8/16/2007,08:12:29,4,2,17055,MSSQLSERVER,N/A,WS42,17162 :  SQL Server startet mit Prioritätsklasse 'normal' (1 CPU vorgefunden).     
30.
8/16/2007,08:12:30,4,0,1807,SecurityCenter,N/A,WS42,Der Dienst "Sicherheitscenter" wurde beendet. Die Ausführung wurde durch eine Gruppenrichtlinie verhindert.   
31.
8/16/2007,08:12:30,4,1,501,Windows Server Update Services,N/A,WS42,Der Dienst "Update Services" wurde gestartet.   
32.
8/16/2007,08:12:30,4,2,17055,MSSQLSERVER,N/A,WS42,17124 :  SQL Server wurde für die Verarbeitung im thread-Modus konfiguriert.     
33.
8/16/2007,08:12:31,4,2,17055,MSSQLSERVER,N/A,WS42,17125 :  Die dynamic-Sperrenreservierung wird verwendet. [500] Sperrenblöcke, [1000] Sperrenbesitzerblöcke.     
34.
8/16/2007,08:12:33,4,2,17055,MSSQLSERVER,N/A,WS42,17834 :  Verwendet 'SSNETLIB.DLL', Version '8.0.766'.     
35.
8/16/2007,08:12:33,4,2,17055,MSSQLSERVER,N/A,WS42,19013 :  SQL Server überwacht 192.168.1.170: 1433.     
36.
8/16/2007,08:12:33,4,2,17055,MSSQLSERVER,N/A,WS42,19013 :  SQL Server überwacht 127.0.0.1: 1433.     
37.
8/16/2007,08:12:33,4,2,17055,MSSQLSERVER,N/A,WS42,19013 :  SQL Server überwacht TCP, Shared Memory, Named Pipes.     
38.
8/16/2007,08:12:33,4,2,17055,MSSQLSERVER,N/A,WS42,17126 :  SQL Server ist bereit für Clientverbindungen     
39.
8/16/2007,08:12:36,1,0,0,AVKWCtl,N/A,WS42,Der Filter Treiber konnte aus dem folgenden Grund nicht gestartet werden: Error loading GDMnIcpt (C:\WINDOWS\system32\drivers\MiniIcpt.sys): 2   
40.
8/16/2007,08:12:37,4,2,17055,MSSQLSERVER,N/A,WS42,17052 :  Wiederherstellung abgeschlossen.     
41.
8/16/2007,08:13:38,1,1,421,Windows Server Update Services,N/A,WS42,Die Verbindungsherstellung mit der Datenbank ist fehlgeschlagen. Ursache=SQL Server does not exist or access denied.. Verbindungszeichenfolge: Data Source=WS42\WSUS;Initial Catalog=SUSDB;Connection Timeout=60;Application Name=WSUS SQL Connection;Trusted_Connection=Yes;Pooling='true'; Max Pool Size = 100   
42.
8/16/2007,08:19:17,4,1,4137,Ci,N/A,WS42,CI wurde für Katalog c:\system volume information\catalog.wci gestartet.   
43.
8/16/2007,08:19:18,4,1,4137,Ci,N/A,WS42,CI wurde für Katalog c:\dokumente und einstellungen\all users\anwendungsdaten\microsoft\visio\catalog.wci gestartet.   
44.
8/16/2007,08:19:23,4,1,4137,Ci,N/A,WS42,CI wurde für Katalog c:\inetpub\catalog.wci gestartet.   
45.
8/16/2007,08:28:53,4,1,501,Windows Server Update Services,N/A,WS42,Der Dienst "Update Services" wurde gestartet.   
46.
8/16/2007,08:29:54,1,1,421,Windows Server Update Services,N/A,WS42,Die Verbindungsherstellung mit der Datenbank ist fehlgeschlagen. Ursache=SQL Server does not exist or access denied.. Verbindungszeichenfolge: Data Source=WS42\WSUS;Initial Catalog=SUSDB;Connection Timeout=60;Application Name=WSUS SQL Connection;Trusted_Connection=Yes;Pooling='true'; Max Pool Size = 100   
47.
8/16/2007,08:45:00,4,1,501,Windows Server Update Services,N/A,WS42,Der Dienst "Update Services" wurde gestartet.   
48.
8/16/2007,08:46:02,1,1,421,Windows Server Update Services,N/A,WS42,Die Verbindungsherstellung mit der Datenbank ist fehlgeschlagen. Ursache=SQL Server does not exist or access denied.. Verbindungszeichenfolge: Data Source=WS42\WSUS;Initial Catalog=SUSDB;Connection Timeout=60;Application Name=WSUS SQL Connection;Trusted_Connection=Yes;Pooling='true'; Max Pool Size = 100   
49.
8/16/2007,14:56:46,4,2,17055,MSSQLSERVER,N/A,WS42,17147 :  SQL Server beendet, da das System heruntergefahren wird.     
50.
8/17/2007,07:56:47,4,0,0,AntiVirusKit Client,N/A,WS42,Info: Service started   
51.
8/17/2007,07:56:47,4,0,0,AVKProxy,N/A,WS42,Service started   
52.
8/17/2007,07:56:55,4,2,17055,MSSQLSERVER,N/A,WS42,17052 :  Microsoft SQL Server  2000 - 8.00.760 (Intel X86)  	Dec 17 2002 14:22:05  	Copyright (c) 1988-2003 Microsoft Corporation 	Desktop Engine on Windows NT 5.1 (Build 2600: Service Pack 2)      
53.
8/17/2007,07:56:55,4,2,17055,MSSQLSERVER,N/A,WS42,17104 :  Serverprozess-ID ist 2044.     
54.
8/17/2007,07:56:55,4,2,17176,MSSQLSERVER,N/A,WS42,This instance of SQL Server last reported using a process id of 132 at 16.08.2007 14:56:48 (local) 16.08.2007 12:56:48 (UTC).   
55.
8/17/2007,07:56:56,4,2,17055,MSSQLSERVER,N/A,WS42,17162 :  SQL Server startet mit Prioritätsklasse 'normal' (1 CPU vorgefunden).     
56.
8/17/2007,07:56:56,4,0,1807,SecurityCenter,N/A,WS42,Der Dienst "Sicherheitscenter" wurde beendet. Die Ausführung wurde durch eine Gruppenrichtlinie verhindert.   
57.
8/17/2007,07:56:56,4,1,501,Windows Server Update Services,N/A,WS42,Der Dienst "Update Services" wurde gestartet.   
58.
8/17/2007,07:56:57,4,2,17055,MSSQLSERVER,N/A,WS42,17124 :  SQL Server wurde für die Verarbeitung im thread-Modus konfiguriert.     
59.
8/17/2007,07:56:57,4,2,17055,MSSQLSERVER,N/A,WS42,17125 :  Die dynamic-Sperrenreservierung wird verwendet. [500] Sperrenblöcke, [1000] Sperrenbesitzerblöcke.     
60.
8/17/2007,07:56:59,4,2,17055,MSSQLSERVER,N/A,WS42,17834 :  Verwendet 'SSNETLIB.DLL', Version '8.0.766'.     
61.
8/17/2007,07:56:59,4,2,17055,MSSQLSERVER,N/A,WS42,19013 :  SQL Server überwacht 192.168.1.170: 1433.     
62.
8/17/2007,07:56:59,4,2,17055,MSSQLSERVER,N/A,WS42,19013 :  SQL Server überwacht 127.0.0.1: 1433.     
63.
8/17/2007,07:56:59,4,2,17055,MSSQLSERVER,N/A,WS42,19013 :  SQL Server überwacht TCP, Shared Memory, Named Pipes.     
64.
8/17/2007,07:56:59,4,2,17055,MSSQLSERVER,N/A,WS42,17126 :  SQL Server ist bereit für Clientverbindungen     
65.
8/17/2007,07:57:01,1,0,0,AVKWCtl,N/A,WS42,Der Filter Treiber konnte aus dem folgenden Grund nicht gestartet werden: Error loading GDMnIcpt (C:\WINDOWS\system32\drivers\MiniIcpt.sys): 2   
66.
8/17/2007,07:57:07,4,2,17055,MSSQLSERVER,N/A,WS42,17052 :  Wiederherstellung abgeschlossen.     
67.
8/17/2007,07:57:12,4,0,1704,SceCli,N/A,WS42,Die Sicherheitsrichtlinie in den Gruppenrichtlinienobjekten wurde erfolgreich angewendet.   
68.
8/17/2007,07:57:58,1,1,421,Windows Server Update Services,N/A,WS42,Die Verbindungsherstellung mit der Datenbank ist fehlgeschlagen. Ursache=SQL Server does not exist or access denied.. Verbindungszeichenfolge: Data Source=WS42\WSUS;Initial Catalog=SUSDB;Connection Timeout=60;Application Name=WSUS SQL Connection;Trusted_Connection=Yes;Pooling='true'; Max Pool Size = 100   
69.
8/17/2007,08:04:00,4,1,4137,Ci,N/A,WS42,CI wurde für Katalog c:\system volume information\catalog.wci gestartet.   
70.
8/17/2007,08:04:01,4,1,4137,Ci,N/A,WS42,CI wurde für Katalog c:\dokumente und einstellungen\all users\anwendungsdaten\microsoft\visio\catalog.wci gestartet.   
71.
8/17/2007,08:04:06,4,1,4137,Ci,N/A,WS42,CI wurde für Katalog c:\inetpub\catalog.wci gestartet.  
und so schaut das ergebniss aus (Error-app.txt)

01.
[Errorcode: 4] [logdate:  8/16/2007 -- 07:56:23] [Errortext:  0,0,AntiVirusKit Client,N/A,WS42,Info: Service started  ] 
02.
[Errorcode: 4] [logdate:  8/16/2007 -- 07:56:23] [Errortext:  0,0,AVKProxy,N/A,WS42,Service started  ] 
03.
[Errorcode: 4] [logdate:  8/16/2007 -- 07:56:32] [Errortext:  2,17055,MSSQLSERVER,N/A,WS42,17052 :  Microsoft SQL Server  2000 - 8.00.760 (Intel X86)  	Dec 17 2002 14:22:05  	Copyright (c) 1988-2003 Microsoft Corporation 	Desktop Engine on Windows NT 5.1 (Build 2600: Service Pack 2)     ] 
04.
[Errorcode: 4] [logdate:  8/16/2007 -- 07:56:32] [Errortext:  2,17055,MSSQLSERVER,N/A,WS42,17104 :  Serverprozess-ID ist 132.    ] 
05.
[Errorcode: 4] [logdate:  8/16/2007 -- 07:56:32] [Errortext:  2,17176,MSSQLSERVER,N/A,WS42,This instance of SQL Server last reported using a process id of 544 at 14.08.2007 17:04:48 (local) 14.08.2007 15:04:48 (UTC).  ] 
06.
[Errorcode: 4] [logdate:  8/16/2007 -- 07:56:32] [Errortext:  2,17055,MSSQLSERVER,N/A,WS42,17162 :  SQL Server startet mit Prioritätsklasse 'normal' (1 CPU vorgefunden).    ] 
07.
[Errorcode: 4] [logdate:  8/16/2007 -- 07:56:32] [Errortext:  0,1807,SecurityCenter,N/A,WS42,Der Dienst "Sicherheitscenter" wurde beendet. Die Ausführung wurde durch eine Gruppenrichtlinie verhindert.  ]
fänds super wenn du nochmal nachschauen könntest was noch fehlt oder wo der fehler ist, bin auch schon die ganze zeit am rum probieren aber hab leider fast keine ahnung vom batchen

Gruß

der stille Benutzer
Bitte warten ..
Mitglied: Biber
17.08.2007 um 12:45 Uhr
Moin Silentuser,

okay, das Problem liegt darin, das auch die jeweilige Errorlog-Zeile ihrerseits Anführungszeichen (") enthalten kann.
Zum Beispiel den Text Der Dienst "Update Services" wurde gestartet.
Das bringt wiederum die For/F-Anweisung in dem Block :ProcessLine durcheinander.

Also, ein paar Anregungungen zur Verfeinerung:

  • Die 80-Prozentlösung: Ersetze den Block ":ProcessLine" wie folgt:
01.
.. 
02.
:ProcessLine 
03.
For /f "delims=, tokens=1,2,3,*" %%i in ('echo %1') Do if %%k GEQ %Code% ( 
04.
 echo [Errorcode: %%k] [logdate:  %%~i -- %%j] [Errortext:  %%l]>>"%Err%" 
05.
) 
--> Haken an der Geschichte: am Ende des "Errortext"-Parameters %%l kleibt noch ein sinnfreies Anführungszeichen. Sieht blöd aus.

  • Deshalb eventuell noch....falls immer nur EIN Errorcode abgefragt wird und nicht ein GEQ/größer gleich Errorcode, dann schon oben schreiben
STATT: ....for /f "usebackq delims=" %%i in ("%Log%") DO...
BESSER: ...For /f "delims=" %%i in ('findstr ",%code%," "%Log%"') DO...
Geht schneller. Und unten in ":Processline" kann entsprechend statt "GEQ" ein "EQU" rein.

  • Ebenfalls in ":Processline kannst Du überlegen, ob Du den String, die ganze Eventlog-Zeile, weiter aussiebst und weitere Parameter wegfilterst.
Die dem "Errorcode" folgenden Token sind nicht sehr ergiebig... eigentlich kannst Du auf die Info "1", "2" oder "N/A" verzichten.
Also kannst Du auch schreiben
Statt: ...For /f "delims=, tokens=1,2,3,*" %%i .... DO ...mit %%i bis %%l
Besser z.B.....
For /f "delims=, tokens=1,2,3,6,*" ...%%i ... DO .....mit %%i bis %%m (oder ähnlich).

  • Falls dieses oben beschriebene Anführungszeichen nervt, dann müssen eben die eine oder andere dynamische Variable nochmals kurz umgespeichert werden in eine statische (also eine die als als "Set var=%%k" angelegt wurde). Dann lässt sich mit "echo %var:0.~1%" alles bis aufs letzte Zeichen, also das Anführungszeichen anzeigen.

Grüße
Biber
Bitte warten ..
Mitglied: Silentuser
20.08.2007 um 09:28 Uhr
Moin Biber

also herzlichen Dank für die erläuterung, so funktioniert es schonmal:

01.
@echo & setlocal 
02.
set "Log=C:\Programme\Resource Kit\app.txt" 
03.
set "Err=C:\Programme\Resource Kit\Error-app.txt" 
04.
set "Code=1" 
05.
 
06.
if exist "%Err%" del "%Err%" 
07.
For /f "delims=" %%i in ('findstr ",%code%," "%Log%"') DO call :ProcessLine "%%i" 
08.
if exist "%Err%" type "%Err%" 
09.
rem start Filter-WARNING-APP.bat 
10.
pause 
11.
exit 
12.
goto :eof 
13.
 
14.
:ProcessLine 
15.
For /f "delims=, tokens=1,2,3,*" %%i in ('echo %1') Do if %%k EQU %Code% ( 
16.
 echo [Errorcode: %%k] [logdate:  %%~i -- %%jUHR] [Errortext:  %%l]>>"%Err%" 
17.
) 
ein paar fragen hätt ich aber dem persöhnlichen verständniss halber.
Und zwar wie is das mit dem

01.
For /f "delims=, tokens=1,2,3,6,*" ...%%i ... DO .....mit %%i bis %%m (oder ähnlich).
gemeint, ich verstehe wie die Lösung aussehen soll aber leider nicht wie ich es umsetze und es wäre doch noch ein nettes featur, wo bestimmst du was %%i bzw %%m ist (woher weiß die Batch was was ist ? ich blick da nich so ganz durch. und wo für steht EQU bzw. GEQ?

wenn das jetzt zuviel erklährungs aufwendige Schreibarbeit ist, is auch nich schlimm dann lern ich mir das bei gelegenheit alles mal selber an

Vieleicht noch neben bei eine offtopic frage:

Ist es möglich per Batch einen "farbigen" Text in eine .txt datei zu schreiben?

Bsp. ich schreibe
01.
echo "WARNING´s from Applications" >> data.txt  
so das wird ja dann per E-Mail versendet, ist es möglich dieses "WARNING´s from Applications" z.B. Rot zu schreiben?

Vielen Dank für die Erklährungen

Gruß

der Silentuser
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Wie ändert eine batch eine bestimmte zeile in einer anderen batch

Frage von J4YK0BBatch & Shell3 Kommentare

Wie schreibt eine batch eine andere batch um, aber nur eine SPEZIELLE zeile? Das System ist wiefolgt. Man gibt ...

Batch & Shell

Mit Batch Zeilen aus TXT modifizieren

gelöst Frage von chef1568Batch & Shell4 Kommentare

Hallo zusammen, leider konnte ich mit den bisherigen Threads mein Problem bisher nicht lösen. Problemstellung: In einer Textdatei sind ...

Batch & Shell

Zeile mit Sonderzeichen in txt einfügen

gelöst Frage von FaysaxBatch & Shell1 Kommentar

Hallo miteinander, ich habe folgendes Problem: Ich habe eine xml Datei in eine txt umgewandelt. Nun möchte ich am ...

Batch & Shell

Letzte Zeile einer .txt in eine andere .txt ausschneiden per Batch

gelöst Frage von AlexIOTBatch & Shell4 Kommentare

Hallo zusammen, zu meinem obrigen Thema habe ich leider nur in Richtung löschen und nicht in Richtung ausschneiden etwas ...

Neue Wissensbeiträge
Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 1 TagHumor (lol)4 Kommentare

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 1 TagExchange Server6 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 2 TagenErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Vmware
VMware Updates gegen L1 Lücke
Information von sabines vor 3 TagenVmware

Für die Vmware Produkte vCenter Server, ESXi, Workstation und Fusion stehe Updates bereit um die L1 Lücke zu schließen. ...

Heiß diskutierte Inhalte
Netzwerke
Netzwerk-Architektur mit VLANs
Frage von niLuxxNetzwerke21 Kommentare

Liebe Community, Ich hätte eine kurze Frage an euch. Ich werde in Kürze das Netzwerk unserer (sehr) kleinen Firma ...

Webbrowser
Neuer Tab Firefox
gelöst Frage von BleifussWebbrowser12 Kommentare

Hallo, via Strg + T öffnet man ja einen neuen Tab. Gibt es die Möglichkeit, dass der Tab sich ...

Windows Server
WSUS nach Upgrade - kein Start mehr
gelöst Frage von Ghost108Windows Server9 Kommentare

Hallo zusammen, habe einen Windows Server 2012 welcher als WSUS dienst. Jetzt wurde ein Upgrade auf Server 2016 durchgeführt ...

Microsoft
Ist es möglich ein reines Volume C Datenbackup in eine Hyper-V VM zu konvertieren?
Frage von Frank84Microsoft8 Kommentare

Hallo zusammen, ich habe hier ein Backup vorliegen, das ausschließlich das komplette C:\ Volume eines physischen Server 2012 enthält. ...