Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

Inhalt einer Datei per batch vergleichen und aktion ausführen

Frage Entwicklung Batch & Shell

Mitglied: moltova

moltova (Level 1) - Jetzt verbinden

26.06.2012, aktualisiert 15:26 Uhr, 3663 Aufrufe, 7 Kommentare

Hi,

da mein Kopf gerade total raucht, dachte ich, ich wende mich vertrauensvoll an Euch

Mein Problem (Denkblockade oder wie auch immer)

Ich habe einen Skript geschrieben,der die HTML Daten des Webinterfaces meines Routers herunterlädt und die Zeile filter, wo die aktuelle IP Adresse des ISP angezeigt wird. Diese IP Adresse wird danach in ein TXT File geschrieben. Danach wird per skript der Inhalt dieses TXT Files per Email versendet. Soweit kalppt das perfekt. Habe das ganze auf meinem HomeServer per Aufgabenplaner am laufen und dieser sendet schön brav alle 2 Stunden die aktuelle IP des Routers.

Jetzt möchte ich aber, das der Skript erst in den Emailabschnitt springt, wenn sich die IP Adresse geändert hat.

Wie kann ich das abfragen? Habe schon versucht mit 2 TXT Daten zu Arbeiten aber jetzt bin ich gerade an einem Punkt wo mir absolut der Kopf raucht?!?!?!?!


Hier mein Skript damit Ihr Euch das besser Vorstellen könnt.

01.
 
02.
wget --mirror -k -E http://192.168.0.254/ 
03.
 
04.
findstr /I "wan_ip=" "192.168.0.254\index.html">"aktuelle_ip.txt" 
05.
 
06.
Blat -install test@test.de test@test.de 
07.
Blat "aktuelle_ip.txt" -to test@test.de -server mail.gmx.net -u test@test.de -pw test@test.de -debug -timestamp -log blatSMTPlog.txt -subject "aktuelle Router IP" 
08.
 

Das ganze läuft schön als cmd


Vielen Dank

Matthias

NACHTRAG: wie erzeugt man hier im Forum dieses Fenster für Codeschnipsel für Programmierungen etc?!

Nachtrag 2: die Frage aus "Nachtrag" klappt ja schoneinmal
Mitglied: ITLogger
26.06.2012 um 11:52 Uhr
Direkt mit Code kann ich Dir nicht helfen. Aber mit einer generellen Idee, denn Dateien auslesen und schreiben kannst Du ja:

Schreibe die aktuelle IP z.B. in zwei Textdateien: aktuelle_ip.txt und letzte_ip.txt. Nur wenn sich diese unterschen fürst Du die Mail Aktion aus. Grundgerüst:

1 Webseite auslesen
2 Findstr ausführen -> IP in aktuelle IP schreiben und zusätzlich in Variable %IP%
3 Letzte_ip.txt auslesen und mit aktueller %IP% vergleichen, wenn gleich, dann Ende, wenn unterschiedlich dann folgende Schritte
4 aktuelle IP in letzte_ip.txt schreiben
5 Mail versenden
Bitte warten ..
Mitglied: pieh-ejdsch
26.06.2012 um 15:01 Uhr
moin Matthias,

Deine AusleseZeile könnte so aussehen:
01.
(for /f delims^= %%i in ('findstr /i "wan_ip=" "192.168.0.254\index.html" ^|findstr /vg:"aktuelle_ip.txt" ') do @echo %%i>"aktuelle_ip.txt" ) || exit /b 0
Nachtrag:
Die Codeschnipsel erzeugst Du mit
<code>Codezeilen</code>
auch nachzulesen in der Formatierungshilfe in den FAQ

Gruß Phil
Bitte warten ..
Mitglied: moltova
26.06.2012 um 15:24 Uhr
OK, Danke, werde das heute Abend mal testen und melde mich dann wieder
Bitte warten ..
Mitglied: moltova
26.06.2012, aktualisiert um 17:15 Uhr
Ok hab jetzt noch ein paar versuche Unternommen.... klappt aber irgendwie nicht so wie ich mir das Denke.
Das ist mein aktueller Code:

01.
goto kopieren 
02.
 
03.
:kopieren 
04.
wget --mirror -k -E http://192.168.0.8/ 
05.
goto auslesen 
06.
 
07.
:auslesen 
08.
findstr /I "wan_ip=" "192.168.0.8\index.html">"aktuelle_ip.txt" 
09.
goto vergleichen 
10.
 
11.
:vergleichen 
12.
(for /f delims^= %%i in ('findstr /i "wan_ip=" "192.168.0.8\index.html" ^|findstr /vg:"aktuelle_ip.txt" ') do @echo %%i>"aktuelle_ip.txt" ) 
13.
if not errorlevel 1 goto mail 
14.
if errorlevel 1 goto ende 
15.
 
16.
 
17.
:mail 
18.
Blat -install  
19.
Blat "aktuelle_ip.txt" -to  -server mail.gmx.net -u  -debug -timestamp -log blatSMTPlog.txt -subject "aktuelle Router IP" 
20.
goto ende 
21.
 
22.
:ende 
23.
pause 
24.
exit
hab im mail Block nur meine Passwörter ec entfernt also nicht wundern das der ein wenig anders aussieht

Achso, so sieht die Zeile aus, die er suchen und vergleichen soll

var wan_ip='88.79.158.135';
Bitte warten ..
Mitglied: pieh-ejdsch
26.06.2012 um 21:47 Uhr
hallo Matthias,

goto Marke und danach die Zeile :Marke ist verschwendeter Platz in dem Batch.

Die von mir hingeschriebene Zeile ist als Ersatz für die Zeile 04 in Deinem StartBeitrag gedacht.
Wenn Du jetzt die "Aktuelle_IP.TXT" schon vorher veränderst, wird die von mir geschriebene Zeile nicht Funktionieren. Sie wird ja von der Forschleife Verändert (die "aktuelle_ip.txt") bei unterschieden.
Den Errorlevel der ('Anweisung') in der Forschleife kannst Du nicht Auslesen, weil diese in einem Seperaten CMD-kontex ausgeführt wird.

So war es gedacht, mit Klammer und wenn Gleich dann Batchende:
01.
wget --mirror -k -E http://192.168.0.254/ 
02.
 
03.
(for /f delims^= %%i in ('findstr /i "wan_ip=" "192.168.0.254\index.html" ^|findstr /vg:"aktuelle_ip.txt" ') do @echo %%i>"aktuelle_ip.txt" ) || exit /b 0 
04.
 
05.
Blat -install test@test.de test@test.de 
06.
Blat "aktuelle_ip.txt" -to test@test.de -server mail.gmx.net -u test@test.de -pw test@test.de -debug -timestamp -log blatSMTPlog.txt -subject "aktuelle Router IP"

Gruß Phil
Bitte warten ..
Mitglied: moltova
26.06.2012 um 22:20 Uhr
Danke für Deine Hilfe, manchmal sieht man den Wald vor lauter Bäumen nicht mehr. Ok habe den Skript nach Deinem Vorschlag angepasst. Leider versendet er immer noch Emails, er sendet wenn ich den Router Neu verbunden habe und eine Neue IP habe und er sendet auch bei allen weiteren Tests danach obwohl die IP Adresse im Skript und der txt gleich geblieben sind.


wo ist der Fehler?

Mit freundlichen Grüßen Mathes
Bitte warten ..
Mitglied: moltova
27.06.2012 um 15:45 Uhr
So habe es jetzt durch folgende Zeile gelöst:

fc /L /N "aktuelle_ip.txt" "alte_ip.txt"
if errorlevel 1 goto mail
goto ende

habe noch eine 2te TXT eingebaut, wo nach dem versenden der eMail die aktuelle IP in die txt Datei "alte_Ip.txt" geschrieben wird.

so funktioniert alles prima

Danke für die Hilfen
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Windows Tools
gelöst Powershell - Auswahl aus Listbox soll Aktion ausführen (4)

Frage von Schmierlappen zum Thema Windows Tools ...

Batch & Shell
Neuere Datei per Batch ausfinding machen (2)

Frage von chattie zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...