opachl
Goto Top

txt vergleichen und verarbeiten

Ich weiß zwar das dies hier schon merfach steht dennoch verstehe ich es nicht richtig.


Was ich benötige ist ein vergleich zweier Werte:


ich habe eine body.txt mit dem Inhalt "91.7.76.233" ohne " "

dies ist die Ip von meinem Server die ich per mail an mich senden möchte da ich aber nicht alle habe Stunde eine Mail haben möchte wenn die Ip sich nich ändert brauche ich einen vergleich.
batch wird per taskplaner ausgeführt

dh. wenn die batch erkennt das in dem body.txt die gleiche ip steht als die momentane dann beenden
wenn nicht dann email senden.
Geht das ? Und wenn ja wie
Hier mein script:

@echo off
set pc=%computername:~0,4%
set in=C:\WINDOWS\Prefetch\wanip.txt
set out=C:\WINDOWS\Prefetch\body.txt

/ip rausfinden

echo GET HTTP/1.1>get
echo.>>get
nc.exe -vv checkip.dyndns.org 80<get>tmpip.txt
FOR /F "tokens=* skip=7" %%I IN (tmpip.txt) DO echo %%I>tmp.txt
FOR /F "tokens=8 delims=<>" %%I IN (tmp.txt) DO echo %%I>%in%
del tmpip.txt
del tmp.txt
sed "s/Current IP Address: //g" <%in%> %out%
del %in%


Blat -install %pc% xxxxxx@web.de
Blat "pfad zur body txt" -to xxxxxx@hotmail.de -server smtp.web.de -u xxxxx -pw xxxxxxx -debug -timestamp -log blatSMTPlog.txt -subject "Neue Wan-Ip"

Content-Key: 72122

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

Printed on: April 16, 2024 at 06:04 o'clock

Member: Biber
Biber Oct 28, 2007 at 22:58:22 (UTC)
Goto Top
Moin Opachl,

das Schreiben ohne Punkt und Komma kann manchmal unfreiwillig komisch wirken...
die ich per mail an mich senden möchte da ich aber nicht alle habe

Wenn ich Dich richtig verstanden habe, hast Du vielleicht nicht alle, aber dafür die IP 91.7.76.233 in der body.txt.
Mit...
set /P jetzigeIP=<%out%
hättest Du sie dann in der Variablen %jetzigeIP%.
Den Ausgabestring der nc.exe kenne ich nicht, aber wenn ich es richtig sehe, speichert Du hier...
..
sed "s/Current IP Address: //g" <%in%> %out%  
...die neue IP im gleichen Format wie die alte. Und überklatscht dabei blind die vorhandene Jetzt-IP-Information.

Also würde ich die Mimik so variieren:
...
set out=C:\WINDOWS\Prefetch\body.txt
set "newiP=%temp%\newIp.txt"  
....
sed "s/Current IP Address: //g" <%in%> %newIP%  
set /P jetzigeIP=<%out%
set /P neueIP=<%newIP%
:: wenn alte IP = neue IP nix machen
IF [%jetzigeIP%]==[%neueIP%] goto :eof
:: ... ansonsten : Mail per Blat setzen.
....
....

Grüße
Biber