sweetstar
Goto Top

Computername aus .ini lesen

Ziel ist es vor dem Login bei Windows XP ein Skript zu haben, das die eigene IP-Adresse auslist, auf eine .ini Datei Zugreift, die eigene IP-Adresse sucht und dann den dazugehörigen Computernamen ausliest und in eine Variable Speichert.

Ziel ist es vor dem Login bei Windows XP ein Skript zu haben, das die eigene IP-Adresse auslist, auf eine .ini Datei Zugreift, die eigene IP-Adresse sucht und dann den dazugehörigen Computernamen ausliest und in eine Variable Speichert.

Aufabu der *.ini Datei:
192.168.2.201=Arbeitsp1Raum1
192.168.2.202=Arbeitsp2Raum1
192.168.2.203=Arbeitsp3Raum1

bisher habe ich es nur geschaft die IP-Adresse auszulesen und das so:
for /F "tokens=13,*" %i in ('ipconfig^|find "IP-Ad"') do set IP=%j

Kann mir jemand helfen? Wie ich auf die Datei zugreife prüfe wo die IP-Adressen gleich sind und dort den Computername in eine Variable speichere?

Mfg

Content-Key: 116885

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

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

Member: Biber
Biber May 27, 2009 at 08:49:39 (UTC)
Goto Top
Moin sweetstar,

willkommen im Forum.

Wenn ich mir die 4 Zeilen oben in eine "Aufabu.ini"-Datei kopiere und es am CMD-Prompt teste, dann wäre eine Skizze:
>set "theIP=192.168.2.203"  
>findstr "%theIP%" aufabu.ini  
192.168.2.203=Arbeitsp3Raum1

>for /f "delims== tokens=2" %i in ('findstr "%theIP%" aufabu.ini') do @echo TheComputer:[%i]  
TheComputer:[Arbeitsp3Raum1]
Die erste Zeile setzt nur einen IP-Wert (den, den Du aus der IPConfig-Ausgabe ermittelst
Die 2. Zeile ermittelt die "richtige" Zeile in der .ini-Datei
Zeile 3 würde aus dieser Zeile den zweiten Token (siehe Hilfe von FOR/F ->FOR/?) separieren.

Grüße
Biber
Member: sweetstar
sweetstar May 27, 2009 at 10:25:00 (UTC)
Goto Top
Hey Biber

erst mal vielen dank für deine schnelle hilfe.
Klappt soweit alles super!

Gruß
Member: sweetstar
sweetstar May 27, 2009 at 12:57:01 (UTC)
Goto Top
So noch ein Problem, wenn ich die Befehle direkt in die CMD eingebe funktioniert das alles einwandfrei wenn ich jetzt jedoch den Befehl: "for /F "tokens=13,*" %i in ('ipconfig^|find "IP-Ad"') do set IP=%j" in eine *.bat Datei speichere und ausführe wird das CMD Fenster sofort geschlossen.
Führe ich die *.bat aus der CMD raus aus kommt folgende Meldung:
"j" ist syntaktisch an dieser Stelle nicht verarbeitbar.

Weiß jemand weiter?
Gruß und schon mal danke für eure hilfe
Member: Biber
Biber May 27, 2009 at 14:21:29 (UTC)
Goto Top
Moin sweetstar,

die Prozentzeichen vor den dynamischen Variablen [ die der FOR-Anweisungen, z.B. %i, %j...] müssen im Batch verdoppelt werden.

Beispiel:

CMD-Prompt
FOR /F "tokens=13,*" %i IN ('ipconfig^|find "IP-Ad"') DO SET "IP=%j" 
im Batch:
FOR /F "tokens=13,*" %%i IN ('ipconfig^|find "IP-Ad"') DO SET "IP=%%j" 

Siehe Hilfe bei CMD /? oder FOR /?

Grüße
Biber
Member: sweetstar
sweetstar May 28, 2009 at 05:04:22 (UTC)
Goto Top
so hat das jetzt super geklappt vielen dank Biber
gruß sweetstar