
38542
09.04.2008, aktualisiert um 14:30:58 Uhr
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
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
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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 85077
Url: https://administrator.de/forum/inhalt-einer-datei-nach-einem-stichwort-durchsuchen-und-ausgeben-85077.html
Ausgedruckt am: 02.05.2025 um 01:05 Uhr
10 Kommentare
Neuester Kommentar

Hi
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...
magst mir kurz erklären was die einzelnen zeilen machen?
will das auch verstehen was ich benutzen möchte...
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...

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
pingnetz.cmd
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
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

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...
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.

ne liegt alles in einem ordner...
ich denke - ich hab den Käfer
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

yupp,
hab den Fehlercode genau um 180 verdreht.
so ists besser
hab den Fehlercode genau um 180 verdreht.
IF %ERRORLEVEL% == 1 goto end
IF %ERRORLEVEL% == 0 goto offline
so ists besser