chris2204
Goto Top

HTML-Datei per Batch verändern.

Hallo,

ich hoffe, dass ihr mir bei einem Problem weiterhelfen könnt:

Auf unserem Schulserver wird automatische eine Datei mit dem Namen "index.html" erstellt, in der unsere aktuelle IP-Adresse steht. Diese wird dann automatisch per batch via ftp auf unsere Schulhomepage geladen.
Der Inhalt der html-Datei lautet:
<html><head><title>Current IP Check</title></head><body>Current IP Address: 91.12.76.55</body></html>

Ist es möglich, per batch-Datei die html-Datei so abzuändern, dass der Text dann wie folgt lautet:
<html><head><title>Current IP Check</title></head><body><a href="https://91.12.76.55/owa">Current IP Address: 91.12.76.55</a></body></html>  

Vielen Dank schon einmal für Eure Hilfe!
Christian


PS: Hab gerade gemerkt, dass der Link nicht richtig angezeigt wird. face-sad Der Link soll auf https://ip-adresse/owa verweisen.

[Edit Biber] Codetags gesetzt (s. auch bastla Hinweis unten). [/Edit]

Content-Key: 134732

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

Printed on: April 19, 2024 at 14:04 o'clock

Member: Crusher79
Crusher79 Jan 30, 2010 at 00:24:37 (UTC)
Goto Top
Hi,

was ist denn Sinn der Übung? Wenn ich das so les, habt ihr dynamische IP und wollt, dass die Leute Outlook Webacces von aussen erreichen. Wieso nimmst du nicht einfach ein DynDNS Account zur Hilfe?

Wenn ihr eine eigene Domain besitzt, kannst du einfach eine Weiterleitung auf die DynDNS Adresse einrichten. Z.B. als CNAME:

Feld < Typ > Ziel
owa.tolle-schule.de < CNAME > owa-tolle-schule.dyndns.org

Idealerweise sollte die IP vom Router aktualisiert werden. Natürlich geht auch jeder DynDNS Client. Alternativ gibs noch andere Anbieter: no-ip.org z.B.

So reicht ein einfacher Link vollkommen aus. DynDNS sieht nur nicht so fein aus. Deshalb auch die Weiterleitung über eure Domain. Hast leider nicht geschrieben was ihr so alles habt. Unterstelle aber einfach mal, dass eine Schule auch eine Domain besitzt.

mfg Crusher
Member: Arano
Arano Jan 30, 2010 at 01:39:05 (UTC)
Goto Top
Moin moin,

ich glaube hier kann ich auch helfen.
Habe an den vier Zeilen jetzt selber über 2 Stunden basteln müssen - habe aber auch was dabei gelernt face-big-smile
@echo off

REM Lese den 6ten Token des Inhalts der "index.html" ein.  
REM z.B. "91.12.76.55</body></html>"  
for /F "tokens=6" %%i in (index.html) do set inhalt="%%i"  

REM Zerlege die Zeichenkette anhand eines bestimmten Trennzeichens
REM und speichere den ersten Token in die Variable "ip"  
for /F "delims=<" %%i in (%inhalt%) do set ip=%%i  

echo IP: %ip%

REM Alte IP mit neuem HTML in ZWEITER index-Datei speichern
echo ^<html^>^<head^>^<title^>Current IP Check^</title^>^</head^>^<body^>^<a href="https://%ip%/owa"^>Current IP Address: %ip%^</a^>^</body^>^</html^>>index2.html  


pause >nul
Das erstellt so erstmal eine zweite index-Datei "index2.html" damit die originale beim erstellen und testen nicht dauernd überschrieben wird, da muss am Ende entsprechende der Name angepasst werden sowie ggf. die Ausgabe der IP enfternt werden.


~Arano

Edit:
  • Einen Fehler verbessert: hatte "null" anstelle von "nul" verwendet
  • Aus vier Zeilen drei gemacht: Ersetzen von spitzen oeffnenden Klammern(<) durch Unterstriche(_) entfernt und anstelle des Unterstriches als Trennzeichens die spitze oeffnende Klammer verwendet.
Member: AndreasBrecht
AndreasBrecht Jan 30, 2010 at 06:09:16 (UTC)
Goto Top
Mit vbs geht das noch etwas hübscher

  Const ForWrtiting = 2, ForReading = 1
  Dim ts, fs 
  Dim FileContent 

  Set fs = CreateObject("scripting.filesystemobject")  
  Set ts = fs.OpenTextFile("DieDatei.txt", 1)  
  FileContent = ts.ReadAll
  ts.Close
  FileContent = Replace(FileContent , "Ein Text", "Neuer Text")  
  Set ts = fs.OpenTextFile("DieDatei.txt", 2)  
  ts.Write FileContent 
  ts.Close


[Edit Biber] Codetags [/Edit]
Member: bastla
bastla Jan 30, 2010, updated at Oct 18, 2012 at 16:41:00 (UTC)
Goto Top
@Arano
Habe an den vier Zeilen jetzt selber über 2 Stunden basteln müssen - habe aber auch was dabei gelernt face-big-smile
War ja dann wohl trotzdem eine gute Investition. face-smile

Falls es in ähnlich gelagerten Fällen einmal schneller gehen soll, hätte ua TimoBeil einen Thread zum Thema in Arbeit ...

... und da die Fragestellung nicht ganz exotisch ist, lässt sich auch eine Menge weiterer Beiträge hier im Forum finden - stellvertretend etwa: Per Batch XML ändern
Ansonsten hat natürlich AndreasBrecht (BTW: Willkommen im Forum! face-smile) recht: (nicht zuletzt) wegen der enthaltenen Sonderzeichen ist für "Suchen - Ersetzen" VBS die bessere Wahl (lässt sich aber durchaus in Batch integrieren - siehe verlinkten Beitrag) ...

Grüße
bastla

P.S.: @AndreasBrecht: Zu "hübscher" böte sich noch die Verwendung der Tags <code> und </code> zur Formatierung Deines Scripts an ... face-wink
Member: chris2204
chris2204 Jan 30, 2010 at 11:27:14 (UTC)
Goto Top
Wow, vielen vielen Dank auch allen!!! Ihr seid echt Helden :D
Mit den Dateien und auch mit dem Tipp zu dyndns habt ihr mir echt sowas von geholfen.
Ich wünsche euch allen ein schönes Wochenende!

Viele Grüße
Christian
Member: AndreasBrecht
AndreasBrecht Jan 30, 2010 at 17:10:09 (UTC)
Goto Top
Mit den Code Tags sieht das in der Tat übersichtlicher (wenn auch etwas retro) aus. Wenn man das Script kopieren möchte stören dann aber die Zeilennummern. (oder kriegt man die elegant wieder weg??)
Member: chris2204
chris2204 Jan 30, 2010 at 17:15:42 (UTC)
Goto Top
Ich hab den Link oben rechts genommen, dann waren die Zeilennummern automatisch weg face-smile
Member: AndreasBrecht
AndreasBrecht Jan 30, 2010 at 17:37:46 (UTC)
Goto Top
Sowas muss für mich deutlich auffälliger sein, denn mit solchem Luxus rechne ich einfach gar nicht face-smile