38542
Goto Top

inhalt einer datei nach einem stichwort durchsuchen und ausgeben

hi alle zusammen,

hab folgendes anliegen:

ich möchte gerne eine batch die täglich mehrere ips anpingt und mir das in einer datei logt. das ist ja kein problem hab ich schon hinbekommen. nur als nächster schritt soll die datei nache dem wort "zeitüberschreitung" durchsucht werden und sobald so ein treffer vorliegt sollte es eine neue datei auf meinem desktop rausschmeißen oder am aller besten ne email verschicken.

achja und er sollte immer nach dem aktuellen datum schauen. ich loge zur zeit mit dem aktuellen datum und der urhzeit. darum sollte sich die batch dann doch schon auf das gerade aktuelle systemdatum beziehen.

so das wars face-smile

und so als kleine bitte...

habt ihr ein paar gute links wo man sich etwas mehr mit bacht "programmierung" befassen kann? so tutorials, befehle etc.

danke im voraus

Content-Key: 85077

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

Ausgedruckt am: 28.03.2024 um 22:03 Uhr

Mitglied: 60730
60730 09.04.2008 um 12:44:41 Uhr
Goto Top
Hi


magst mir kurz erklären was die einzelnen zeilen machen?
will das auch verstehen was ich benutzen möchte...

rem "pinge" den Rechner "Pong" an, und gebe das Ergebnis davon in die Textdatei  "Pingpong.log" (in dem Laufwerk/Verzeichnis, wo die Batch gestartet wird.)  
ping pong > pingpong.log

rem durchsuche, ob in der pingpong.log der Wert berschreitung steht
findstr /c:"berschreitung" pingpong.log  

Rem wenn ja, gehe zu offline
IF %ERRORLEVEL% == 0 goto offline
Wenn nein, gehe ans ende
IF %ERRORLEVEL% == 1 goto end

:offline
rem - ein System wurde nicht gefunden und gebe diese Meldung auf dem Bildschirm aus.
echo ein Rechner ist offline
rem füge die aktuelle Uhrzeit in die Textdatei pingpong.log an.
time /t >> pingpong.log

:end

Den Umlaut Ü wird das Findstr nicht finden - daher nur nach "berschreitung" suchen

Edit:

Biber in Google und in diesem Forum
Bastla in diesem Forum
edit2:
richtigerweise genau andersherum...
Mitglied: 38542
38542 09.04.2008 um 13:00:36 Uhr
Goto Top
magst mir kurz erklären was die einzelnen zeilen machen? will das auch verstehen was ich benutzen möchte...

EDIT:

ok noch dazu wird nur die urhzeit ausgegeben... hätte aber lieber eine ausgabe wenn eine ip nicht erreichbar ist.
Mitglied: 60730
60730 09.04.2008 um 13:14:43 Uhr
Goto Top
hab ich gemacht,

nun bist du dran - poste doch mal deine Batch und dann verstehn wir auch, wie du das gelöst hast und was du noch brauchst.

pingpong.cmd

ping %1 >ping.txt
findstr /c:"berschreitung" ping.txt  
IF %ERRORLEVEL% == 1 goto end
IF %ERRORLEVEL% == 0 goto offline

:offline
date /t >> pingpong.log
time /t >> pingpong.log
Echo System %1 hat sich nicht gemeldet. >> pingpong.log
notepad pingpong.log
:end

pingnetz.cmd

pingpong.cmd 192.168.1.1
pingpong.cmd 192.168.1.2

kopiere diese beiden scripte unter Ihrem Namen in einen Ordner und ändere in Pingnetz - deine Rechner (oder IP) Adressen.

Starte dann die pingnetz.

Ps: in einer Komandozeile kannst du jeden der Befehle eingeben und "/?" dahinter schreiben.
Damit hast du eine gute Hilfe.

Ich bin schon ganz gespannt auf die For to Schleife, die gleich/später kommt face-wink
Mitglied: 38542
38542 09.04.2008 um 13:20:11 Uhr
Goto Top
noch eine frage und zwar hier zu:


Rem wenn ja, gehe zu offline
IF %ERRORLEVEL% GTR 0 goto offline
Wenn nein, gehe ans ende
IF %ERRORLEVEL% EQU 0 goto end


woher weiß der was welcher errorlevel ist?

mit der batch ist es nämlich egal ob der rechner erreichbar ist oder nicht er erzeugt immer eine log datei mit einer uhrzeit...
Mitglied: 60730
60730 09.04.2008 um 13:31:27 Uhr
Goto Top
woher weiß der was welcher errorlevel
ist?

mit der batch ist es nämlich egal ob
der rechner erreichbar ist oder nicht er
erzeugt immer eine log datei mit einer
uhrzeit...

???

Das kann nur dann so sein, wenn die Batch "irgendwo" liegt und du Sie nicht in Ihrem Ordner startest.
(dann wird die log datei nicht gefunden - ergo auch kein "berschreitung" darin gefunden)
Ändere doch mal alles "ping.txt" in c:\test\ping.txt und kopiere Sie dortrein und starte die batch aus dem Verzeichnis raus.
Mitglied: 38542
38542 09.04.2008 um 13:46:48 Uhr
Goto Top
ne liegt alles in einem ordner...

so schaut se aus

ping 192.168.10.45 >> aps.log

findstr /c:"berschreitung" aps.log
IF %ERRORLEVEL% GTR 0 goto offline
IF %ERRORLEVEL% EQU 0 goto end

:offline
date /t >> pingpong.log
time /t >> pingpong.log
:end
Mitglied: 60730
60730 09.04.2008 um 13:52:33 Uhr
Goto Top
ne liegt alles in einem ordner...

ich denke - ich hab den Käfer face-wink


autsch

jetzt hab ichs mal getestet - sorry....


IF %ERRORLEVEL% == 1 goto end
IF %ERRORLEVEL% == 0 goto offline



entweder änderst du ">>" in > - oder setzt ein del aps.log vorne dran.

So ">>" wird die aps.log ja immer um weitere Infos erweitert. War "jemals" vorher ein nicht gefunden - dann findet er das auch immer wieder.

 ping 192.168.10.45 >aps.log
 
 findstr /c:"berschreitung" aps.log  
 IF %ERRORLEVEL% GTR 0 goto offline
 IF %ERRORLEVEL% EQU 0 goto end
 
 :offline
 date /t >> pingpong.log
 time /t >> pingpong.log
 :end
Mitglied: 38542
38542 09.04.2008 um 13:59:54 Uhr
Goto Top
nun hab ich das schon so wie du es gepostet hast und es haut immernoch nicht hin...
in der log steht das ich eine antwort erhalte aber er schreibt mir immernoch eine log datei mit datum und uhrzeit...


EDIT:

habe mal was ausprobiert... und zwar geht er beide bedingungen durch...

ping 192.168.10.45 >aps.log

findstr /c:"berschreitung" aps.log
IF %ERRORLEVEL% GTR 0 goto offline
IF %ERRORLEVEL% EQU 0 goto end

:offline
date /t >> pingpong.log
time /t >> pingpong.log
:end
date /t >> pingpong.log
time /t >> pingpong.log

es kommt zweimal datum und uhrzeit in der log datei...

entweder setzt er den errorlevel nicht auf 1 oder keine ahnung..
Mitglied: 60730
60730 09.04.2008 um 14:09:42 Uhr
Goto Top
yupp,

hab den Fehlercode genau um 180 verdreht.

IF %ERRORLEVEL% == 1 goto end
IF %ERRORLEVEL% == 0 goto offline

so ists besser
Mitglied: 38542
38542 09.04.2008 um 14:30:50 Uhr
Goto Top
ja nu hauts auch hin. und macht auch sinn ;)

danke dir.

nun noch einen geplanten task und dann hab ich ruhe face-smile

nurnoch die frage: hast du paar gute links etc. für mich ?


EDIT: gibts noch eine möglichkeit das ganze per mail verschicken zu lassen?