superboh
Goto Top

Doppelte Einträge einer Liste per Batch aussortieren

Hallo,

ich lese alle 2 aus dem Eventlog des Fileservers per "psloglist" aus, wenn ein User die Warnschwelle der Kontingentverwaltung überschreitet.
An alle diese User möchte ich dann per "net send" eine Nachricht schicken.
Funktioniert auch soweit. Problem ist nur, dass es für manche User in den letzten 2 Stunden mehrere Einträge gibt uns der User somit die Nachricht auch mehrfach bekommt.

Wie kann ich das filtern?


Meine Batch sieht so aus:
psloglist \\SRV7 -i 36 -m 120 -s > %TEMP%\quota.txt
for /F "skip=1 tokens=8 delims=,\" %%i in (%TEMP%\quota.txt) do net send %%i ACHTUNG!! Sie haben Ihren zulässigen Speicherplatz auf Laufwerk H: überschritten.  
del %TEMP%\quota.txt


Und das ist die Liste, welche mir psloglist ausliest:
System log on \\SRV07:
39046,System,Ntfs,INFORMATION,SRV07,04.11.2008 17:05:21,36,grossl\FIRMA,Benutzer hat Schwellenwert auf Datenträger "E:" erreicht.    
39045,System,Ntfs,INFORMATION,SRV07,04.11.2008 16:58:12,36,bauers\FIRMA,Benutzer hat Schwellenwert auf Datenträger "E:" erreicht.    
39044,System,Ntfs,INFORMATION,SRV07,04.11.2008 16:51:29,36,grossl\FIRMA,Benutzer hat Schwellenwert auf Datenträger "E:" erreicht.    
39042,System,Ntfs,INFORMATION,SRV07,04.11.2008 16:42:05,36,ernstm\FIRMA,Benutzer hat Schwellenwert auf Datenträger "E:" erreicht.    
39041,System,Ntfs,INFORMATION,SRV07,04.11.2008 16:38:36,36,grossl\FIRMA,Benutzer hat Schwellenwert auf Datenträger "E:" erreicht.    

Gruß,
Thomas

Content-ID: 101070

Url: https://administrator.de/contentid/101070

Ausgedruckt am: 22.11.2024 um 09:11 Uhr

bastla
bastla 05.11.2008 um 12:25:43 Uhr
Goto Top
Hallo superboh!

Das könnte (ungetestet) etwa so gehen:
psloglist \\SRV7 -i 36 -m 120 -s > %TEMP%\quota.txt
set U=%temp%\Users.txt
copy nul %U%>nul
for /F "skip=1 tokens=8 delims=,\" %%i in (%TEMP%\quota.txt) do (  
    findstr /x /c:"%%i" %U%>nul || (  
        net send %%i ACHTUNG!! Sie haben Ihren zulässigen Speicherplatz auf Laufwerk H: überschritten.
        >>%U% echo %%i
    )
)
del %TEMP%\quota.txt
Achtung: Nach dem "%%i" in Zeile 7 darf kein Leerzeichen folgen, da (siehe Schalter "/x") mit "findstr" die gesamte Zeile überprüft wird (um zB "Gut" und "Gutmann" voneinander unterscheidbar zu machen) !

Grüße
bastla
superboh
superboh 05.11.2008 um 13:56:58 Uhr
Goto Top
Spitze, genau das war es was ich gebraucht habe.
Vielen Dank!

Gruß,
Thomas