Toon posts:

[Win2k] Op datum zoeken ( DOS, Batch )*

Pagina: 1
Acties:
  • 223 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
hallo.
ik heb een script dat errors zoekt in de 'Windows Update.log'. ik zal het script onderaan mijn post zetten..
het script runt zichzelf elke dag op een bepaald tijdstip.. Nu wil ik dat het script alleen zoekt in de regels met de datum van vandaag..
weet iemand hoe ik dat erbij kan doen?
het zal wel zo iets zijn als 'For %date%' blabla..
hier het script.


type "c:\WINNT\Windows Update.log" | find "Error" >> c:\errorlog.txt
find "error" c:\errorlog.txt
if errorlevel 1 goto oke
echo errors gevonden
cd blat
blat c:\errorlog.txt -t a.jochemsen@zx.nl -s errorlog_%computername%
del c:\errorlog.txt
goto einde
:oke
echo niks gevonden
:einde
exit

ps: dat met Blat is het mailen van de errorlog.txt naar mij toe, Blat is een gratis command line mailer

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

DOS batch scripts -> Windows Operated Systems :)

Professionele website nodig?


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

findstr "%date%" "%Systemroot%\Windows update.log" >logfiltert.log

Kan je ook het OS nog eventjes melden? Dan kan ik je topic titel aanpassen :)

[ Voor 39% gewijzigd door elevator op 24-02-2004 11:59 ]


Verwijderd

Topicstarter
thnx zal proberen

windows 2k prof

Verwijderd

Topicstarter
Hoi Elevator
ik heb jou regel even getest.. hij maakt netjes logfiltert.log aan alleen staat er niks in..
nu d8 ik eraan dat de datum in DOS ( cmd ) er als volgt uitziet: Tue 02/24/2004
en in de Windows Update.log is de datum zo: 2004-02-24

die 2 zijn dus totaal verschillend.. klopt het dat hij daarom niks in logfiltert.log zet?

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Zou goed kunnen - je zal dan ook zelf dit voorbeeld moeten gaan omvormen naar iets wat je wel kan gebruiken.

Denk bv aan:
code:
1
for /f "tokens=2,3,4 delims=- " %i in ("%date%") do echo %i-%j-%k


op een commandline uit te voeren. Om dit in een batchfile te kunnen gebruiken moet je van elke % 2 maken, dus:

code:
1
for /f "tokens=2,3,4 delims=- " %%i in ("%date%") do echo %%i-%%j-%%k


Verder - speel er even mee rond zodat je e.e.a. snapt - "for /?" geeft al veel informatie.

Verwijderd

Topicstarter
wow, ziet er ingewikkeld uit voor een noobie als ik :d
heb er even mee zitten testen maar zelfs dat is al moeilijk :d
for /? geeft veel info maar ook zo moeilijk engels enzo.. maja zal eens meer klooien ermee

Verwijderd

Topicstarter
@echo off
for /f "tokens=2,3,4 delims=/ " %%i in ("%date%") do echo %%k-%%i-%%j > c:\testlog.txt
echo gelukt

dat issum :D
nu moet ik het nog in mijn script implanteren maar moet lukken :D

Verwijderd

type "c:\WINNT\Windows Update.log" | find "Error" >> c:\errorlog.txt

da's redelijke onzin natuurlijk...

find /i "error" "c:\WINNT\Windows Update.log" >> c:\errorlog.txt
if errorlevel 1 goto oke
echo errors gevonden
for /f "tokens=2,3,4 delims=/ " %%i in ("%date%") do set datum="%%k-%%i-%%j"
find /i %datum% c:\errorlog.txt
if errorlevel 1 goto noerrorstoday
enz...

plz note. in de set datum worden de quotes " " gezet.

als je find "%datum%" probeert wordt er gezocht naar de string %datum% (niet naar var %datum%). op deze manier omzeil je dat...

[ Voor 135% gewijzigd door Verwijderd op 24-02-2004 14:27 ]


Verwijderd

Topicstarter
thnx.
maar iis5 je gebruikt 2 keer if errorlevel 1, dat is dubbel op toch?
anyway, heb hem getest en werkt prima..
bedankt guys!!

[ Voor 28% gewijzigd door Verwijderd op 24-02-2004 14:41 ]


Verwijderd

yup, maar die testen 2 dingen... de eerste keer error. de 2de keer op datum

Verwijderd

Topicstarter
aha, heeft dat ermee te maken dat als ik GEEN errors heb, hij TOCH een mailtje stuurt?

na het zoeken op errors in Windows Update.log staat IF ERRORLEVEL 1 goto oke

oke sluit af..

toch werkt hij het hele script af, ookal vind hij geen errors.

hier het script nogmaals.. als ik het zo nakijk lijkt alles goed in mijn ogen.

find /i "error" "c:\WINNT\Windows Update.log" >> c:\errorlog.txt
if errorlevel 1 goto oke
echo errors gevonden
for /f "tokens=2,3,4 delims=/ " %%i in ("%date%") do set datum="%%k-%%i-%%j"
find /i %datum% c:\errorlog.txt >> c:\error.txt
cd blat
blat c:\error.txt -t a.jochemsen@zx.nl -s errorlog_%computername%
del c:\error.txt
del c:\errorlog.txt
goto einde
:oke
echo geen errors gevonden
:einde
exit

Verwijderd

Verwijderd schreef op 24 februari 2004 @ 14:56:
aha, heeft dat ermee te maken dat als ik GEEN errors heb, hij TOCH een mailtje stuurt?

na het zoeken op errors in Windows Update.log staat IF ERRORLEVEL 1 goto oke

oke sluit af..

toch werkt hij het hele script af, ookal vind hij geen errors.

hier het script nogmaals.. als ik het zo nakijk lijkt alles goed in mijn ogen.

find /i "error" "c:\WINNT\Windows Update.log" >> c:\errorlog.txt
if errorlevel 1 goto oke
echo errors gevonden
for /f "tokens=2,3,4 delims=/ " %%i in ("%date%") do set datum="%%k-%%i-%%j"
find /i %datum% c:\errorlog.txt >> c:\error.txt
cd blat
blat c:\error.txt -t a.jochemsen@zx.nl -s errorlog_%computername%
del c:\error.txt
del c:\errorlog.txt
goto einde
:oke
echo geen errors gevonden
:einde
exit
hmmm dat zou moeten werken...
find geeft gewoon keurig een errorlevel af als die niet de string vindt, die je zoekt.
in jou batch dus direct naar oke als er geen errors zijn.

hij mailt nu natuurlijk wel als de errors 3 jaar oud zijn, dan moet je idd de 2de error level invoegen (ook goto oke of naar oke2 als je een andere melding zou willen)

Verwijderd

Topicstarter
ja dat was het wel.. heb die 2e errorlevel erbij gedaan en nu doet hij het perfect
leuk scriptje he? :D gaan we in verband met SUS project gebruiken... Op elke client gaat mijn scriptje draaien, en zodra er iets fout gaat moet hij een mailtje met de error sturen..

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Gebruik dan %temp% ipv C:\ - daarmee creeer je niet zo'n rotzooi op je C: schijf :P

Verwijderd

Topicstarter
doe ik ook niet..

del c:\error.txt
del c:\errorlog.txt

staat ook in het scriptje :D

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Ok - laat ik het anders zeggen ;)

Het wordt steeds meer standaard om schrijf toegang op de root van je C:\ te weigeren en je zou dan in de problemen komen. Bovendien is %temp% nu jusit bedoeld voor temp files ;)

Verwijderd

Topicstarter
hehe ja das waar.
zal het wel even wijzigen :D
thnx lift!!! zonder jou zou mijn computer een puinhoop worden ;)

Verwijderd

Verwijderd schreef op 24 februari 2004 @ 15:13:
ja dat was het wel.. heb die 2e errorlevel erbij gedaan en nu doet hij het perfect
leuk scriptje he? :D gaan we in verband met SUS project gebruiken... Op elke client gaat mijn scriptje draaien, en zodra er iets fout gaat moet hij een mailtje met de error sturen..
ik zou dit script niet op elke client draaien, maar op een server / beheerstation die de clients scant (\\client\admin$\windows update.log).
mocht je een wijziging maken hoef je dat maar op 1 plaats te doen.

Je vangt hiermee overigens alleen de clients af waarbij een error wordt gegenereerd. clients die helemaal niet updaten zal je niet vinden. kijk hiervoor in de sus server iislog, daar kan je zien welke clients proberen te updaten...

[ Voor 17% gewijzigd door Verwijderd op 24-02-2004 18:00 ]


Verwijderd

Topicstarter
Verwijderd schreef op 24 februari 2004 @ 17:57:
[...]


ik zou dit script niet op elke client draaien, maar op een server / beheerstation die de clients scant (\\client\admin$\windows update.log).
mocht je een wijziging maken hoef je dat maar op 1 plaats te doen.

Je vangt hiermee overigens alleen de clients af waarbij een error wordt gegenereerd. clients die helemaal niet updaten zal je niet vinden. kijk hiervoor in de sus server iislog, daar kan je zien welke clients proberen te updaten...
dat zou inderdaad beter zijn ja. zal het morgen even voorleggen aan de basen :D
zat al beetje over in dat ik anders op elke client ook Blat moet installeren, dat command line mail proggie..
Pagina: 1