Windows XP: Zugewiesene IP-Adresse in Batch-Datei auslesen

Wolfi

IT Trainer
Ein SN-Boardmitglied hat mich diesbezüglich um Rat gebeten.

Kein Problem, dachte ich mir und ging folgendermaßen vor:

getIP.cmd
_________

Code:
REM 1. *** IP-Adresse mittels ipconfig auslesen u. in ip1.txt schreiben ***
ipconfig | find "IP-Adresse" > ip1.txt
REM *** ergibt den Inhalt "        IP-Adresse. . . . . . . . . . . . : 213.123.123.123" in ip1.txt ***

REM 2. *** nun den vorderen Teil "        IP-Adresse. . . . . . . . . . . . :" in ip2.txt ablegen ***
for /f "tokens=1-2 delims=:" %i in (ip1.txt) do echo %j > ip2.txt

REM 3. *** nun den Rest, die eigentliche IP-Adresse "213.123.123.123" in ip3.txt ablegen
for /f "tokens=1-3 delims=." %i in (ip2.txt) do echo %i.%j.%k.21 > ip3.txt

REM 4. *** nun den Inhalt von ip3.txt ( die gefragte IP-Adresse weiterverarbeiten ) ***
REM 5. *** usw. ***
____________

Teil 1. klappt wunderbar (nach ip1.txt ausgeben)

Teil 2. Leider bekomme ich beim Parsen nach ip2.txt einen Fehler, nämlich

"j" ist syntaktisch an dieser Stelle nicht verarbeitbar.

Ich kann in der Syntax keinen Fehler erkennen - vielleicht findet ihr ihn... :angel
 
Zuletzt bearbeitet:
Setz mal vor jede Variable ein weiteres Prozentzeichen, dann dürfte zumindest der Fehler nicht mehr kommen.
Die for-Schleife funktionieren dann auf jeden Fall.
Nur die zweite musst du noch ummodeln, dass die das gewünschte Ergebnis ausspuckt

letztes Post für heute :saufduo
 
HTH Wolfi

Ist mit NSIS geschrieben.

#

Jetzt sollte es klappen, Wolfi...
 
Zuletzt bearbeitet:
@ Stoney

Du hattest Recht, das doppelte %-Zeichen für die Variablen ( die ja weiterverarbeitet werden ) ist die Lösung :ROFLMAO:

Bei der 2. for-Schleife fehlte ohnehin noch ein Zeichen ( 21 ).

Herzlichen Dank :bier

________

@ Brummelchen - deine Variante funktioniert unter Windows XP+SP1 leider nicht.
 
Zuletzt bearbeitet:
Könntest du das bitte genauer ausführen? Ich konnte es nur schnell unter 2003 testen und hier klappt das.
Oder suchst du eine andere IP - das wäre ein anderes Script.

PS ich glaub, ich hab den Fehler, es fehlt eine DLL zur Ausführung. 5 Minuten...

PPS siehe oben, wenn du mehr brauchst zur Verarbeitung, sag einfach Bescheid, NSIS ist total einfach.
 
Das Minitool legt die IP jetzt auch in die Zwischenablage ab, kann überall per COPY eingefügt werden.
 
Zuletzt bearbeitet:
Ich hab folgendes Problem:

ich bräuchte eine Batch-Datei, in der überprüft wird, ob ich eine IP-Adresse von AOL bekommen habe. Wenn ja, soll ein "net send"-Befehl ausgegeben dass ich sie habe und wenn nicht, ein "net send"-Befehl , dass ich sie NICHT habe.

Wenn ich online bin, erscheint die Kategorie "PPP-Adapter AOL DFÜ" bei 'ipconfig' und dort steht unter IP-Adresse die Adresse. Wenn ich offline bin, ist sie (die Kategorie) NICHT da.

Nun müsste ne Abfrage kommen, dass diese Kategorie bei mir existiert oder nicht, und dann der o.g. "net send"-Befehl.

Hat da jemand vielleicht eine Idee?
 
Denke das Ganze strukturiert hier auf, dann könnte ich das umsetzen...
 
wenn ich online bin, wird die im Bild grün umrandete 'Kategorie' hinzugefügt, wenn ich offline bin, ist sie halt NICHT da. (das Rote ist Zensiert ;))

nun soll eine IF-Abfrage:

IF (Kategorie vorhanden)
THEN net send rechnerX blablabla RechnerY ist online
ELSE net send rechnerX blablabla RechnerY ist offline

[rechnerX=mein Vater|rechnerY=ich]

bloß hab ich kein Plan, wie das im Batch ausehen soll.


#edit#
wenn das mit dem Ü bei DFÜ zu problemen führt, kann ich es auch umbenennen!
 

Anhänge

  • ipconfig.jpg
    ipconfig.jpg
    35,7 KB · Aufrufe: 741
Probier mal das get-ip von oben aus und sage mir, welche IP du im jeweiligen Fall bekommst. Evtl wäre eine Modifikation gar nicht mal so schwer.
 
Ja toll, hat nur einen Haken, da hat dein Vater nichts von, wenn du dein Rechenr aus ist. Dein Pa müsste das von sich aus kontrollieren können und nicht die Zuweisung von dir bekommen. Denn ohne Meldung müsste er jetzt rätseln, isser nu an oder nicht.
Oder ist das jetzt was falsch in meinem Gedankengang? Falls nicht, müsstest du den Vorgang oben von deinem Vater wiederholen.
 
Damit er sehen kann, ob ich überhaupt im Netzwerk bin, haben wir ein Tool für.


Wenn ich NICHT im Netzwerk bin, checkt das Proggi das von seiner Seite aus, und gibt ihm bescheid.

Bin ich aber Im Netzwerk, weiß er nocht nicht, ob ich online bin oder nicht. dafür die Datei. die soll das prüfen. wenn mein Vater nun sieht, dass ich da bin, wird die datei per Netzwerk von meinem rechner aus gestartet und gibt ihm per "net send" bescheid.

sorry, ich weiß nicht, ob das jetzt erklärend genug ist.

wenn nicht:

Ich bräuchte nur einen Vergleich, ob nun zwei IP-Adressen im File von Get-IP stehen oder eine. wenn 2 IPs drin stehen, dann soll net send RechnerVonVater er ist online, wenn nicht, dann net send RechnerVonVater er ist offline

also nur das IF-THEN-ELSE - Gerüst.
 
Ich bräuchte dann deine IP im Heimnetzwerk noch ... kannst du mir aber auch alles per PN geben, wenn es super geheim ist ;)
 
Die Heim-IP steht oben im Bild :D

aber ich nenne sie gerne nochmal:

192.168.1.1 aber pssst ;)


und notfalls, sollte sich was ändern, kann ich sie ja immer noch ändern. auch den Meldungstext.
 
Oben