varnik 10 Geschrieben 14. Februar 2005 Melden Teilen Geschrieben 14. Februar 2005 Hallo zusammen, wir benutzen Imaging, um unsere Rechner zu installieren. Wie Sie wissen, haben danach alle Rechner gleiche Namen usw. Jedem einzelnen Rechner wird anhand seiner MAC-Adresse per DHCP (quasi BOOTP) immer dieselbe IP-Adresse zugewiesen. Die Raum-Nummer ist in der IP-Adresse kodiert. Ich möchte nun diese Nummer aus der IP-Adresse auslesen. Dafür brauche ich die letzten beiden Oktette der IP-Adresse. Mit dem Befehl: ipconfig | findstr ... IP-Adresse > ip.txt bekomme ich eine Datei, die die ganze Zeile enthält. Wie kriege ich das Gewünschte daraus? Mein Ziel ist ein Skript zu erstellen, das (einmal gestartet) alle notwendige Anpassungen vornimmt. Danke im Voraus Nik Zitieren Link zu diesem Kommentar
Flare 12 Geschrieben 14. Februar 2005 Melden Teilen Geschrieben 14. Februar 2005 Was soll den dein Script alles genau machen ?? IP Auslesen und dir nur die beiden letzen Oktets geben ??? mit WSH ist dies zu bewältigen. Flare Zitieren Link zu diesem Kommentar
Finanzamt 73 Geschrieben 14. Februar 2005 Melden Teilen Geschrieben 14. Februar 2005 Hi! Hier http://cyberside.dyn.ee/FreeSoft/batch02.htm findest Du in der Utility-Sammlung von Horst Schaeffer u.a. QECHO. Damit kannst Du in Batches Substringmanipulationen durchführen. Ich zitiere aus der Beschreibung: "Another feature: A string can be input to QECHO by redirection, and then be completed by writing (or overwriting) something at the specified position...." Du müßtest dann bis zu den letzten beiden Oktetten mit Blanks überschreiben. Eine LeftTrim-Funktion wird ja nicht nötig sein, weil die führenden Blanks kaum stören sollten. Gegrüßt! Zitieren Link zu diesem Kommentar
varnik 10 Geschrieben 14. Februar 2005 Autor Melden Teilen Geschrieben 14. Februar 2005 Den ganzen Ablauf könnte man so darstellen: Nach dem Image-Einspielen startet man den Rechner und führt eine Batch-Datei aus. Das Skript überprüft die IP-Adresse, zieht die Informationen raus und nimmt die notwendigen Änderungen vor. Danach erfolgt ein Neustart mit neuen Einstellungen. Im 3. Oktett der IP- Adresse ist die Raumnummer enthalten. Im 4. Oktett ist die Rechnernummer enthalten. Sie soll ausgelesen und zur eindeutigen Rechneridentifikation um einen raumtypischen Buchstaben ergänzt werden. Bsp.: IP-Adresse: 172.16.204.1 4 steht für den Stock und 20 für die Raumnummer. Daraus sollte sich die eindeutige Raumnummer 4.20 ergeben. Der Computername enthält auch die Raumnummer als einen Buchstaben. Deswegen sollte diese Zahl in Form von zwei Variablen dargestellt werden. <Variable1> = 4.20 <Variable2> = t (raumtypischer Buchstabe) Die 3. Variable sollte die Rechnernummer im jeweiligen Raum definieren. <Variable3> = Letztes Oktett (immer 2 Zahlen) Der Arbeitsgruppe-Name „Raum<Variable1>“ -> „Raum4.20“ Der Rechner-Name „Rechner<Variable2><Variable3>“ -> „RechnerT01“ bzw. „RechnerT12“, wobei die Rechnernummer immer zweistellig (01, 02...10 etc.) sein muss. Zu diesem Zweck sollen einstellige Zahlen mit führender 0 ergänzt werden. Über den Befehl: ipconfig | findstr /c:IP-Adresse > ip.txt kommt man zur IP-Adresse: IP-Adresse. . . . . . . . . . . . : 172.16.204.1 Die letzten beiden Oktetts der IP-Adresse sollen als einzelne Variablen (z.B. V1, V2) erhalten und im gleichen Skript weiterverwendet bzw. an ein anderes Skript übergeben werden, mit dem Computername geändert, Benutzer angelegt und verwaltet werden können. Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 14. Februar 2005 Melden Teilen Geschrieben 14. Februar 2005 Hallo, die wesentlichen Befehle dazu sind For-Schleife und Set. Siehe for /? und set /?. Weiter Die For-Schleife mit dem Schalter für die Textiteration /F ist zum Auslesen von Textzeilen und Blöcken benutzbar, der Set-Befehl zum Manipulieren von Zeichenketten. Viel Erfolg Edgar Zitieren Link zu diesem Kommentar
varnik 10 Geschrieben 14. Februar 2005 Autor Melden Teilen Geschrieben 14. Februar 2005 Danke für die Links. Alles was ich brauche, ist ein Befehl bzw. ein kleines Skript, der/das aus der Zeile IP-Adresse. . . . . . . . . . . . : 172.16.abc.de die Werte abc und de ausliest und diese den weiteren Befehlen set <Variable1> = abc set <Variable2> = X set <Variable3> = de übergibt. Mit diesen Variablen kann ich ruhig weiter arbeiten. Danke für Ihre Hilfe im Voraus. Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 14. Februar 2005 Melden Teilen Geschrieben 14. Februar 2005 Windows 2000-IP-Konfiguration Ethernetadapter "LAN-Verbindung": Verbindungsspezifisches DNS-Suffix: IP-Adresse. . . . . . . . . . . . : 192.168.1.9 Subnetzmaske. . . . . . . . . . . : 255.255.255.0 Standardgateway . . . . . . . . . : 192.168.1.1 Hallo, an der Eingabeaufforderung wird mit ipconfig obriger Neunzeiler ausgegeben. In einer Batch geschieht mit for /f %%i in ('ipconfig') do echo %%i pause quasi das Gleiche. Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 14. Februar 2005 Melden Teilen Geschrieben 14. Februar 2005 Mit Skip werden Zeilen übersprungen. for /f "skip=6" %%i in ('ipconfig') do echo %%i pause Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 14. Februar 2005 Melden Teilen Geschrieben 14. Februar 2005 Mit Tokens und * werden wieder ganze Zeilen ausgegeben. code] for /f "tokens=* skip=6" %%i in ('ipconfig') do echo %%i pause [/code] Standardgateway . . . . . . . . . : 192.168.1.1 IP-Adresse. . . . . . . . . . . . : 192.168.1.9 Subnetzmaske. . . . . . . . . . . : 255.255.255.0 Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 14. Februar 2005 Melden Teilen Geschrieben 14. Februar 2005 Mit dem Sprungbefehl wird die Schleife nach dem ersten Durchlauf beendet. for /f "tokens=* skip=6" %%i in ('ipconfig') do echo %%i >> ipc.txt & goto out :out pause IP-Adresse. . . . . . . . . . . . : 192.168.1.9 Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 14. Februar 2005 Melden Teilen Geschrieben 14. Februar 2005 Mit Tokens=13 ud Delims=. wird ausgegeben: : 192 for /f "tokens=13 skip=6 delims=." %%i in ('ipconfig') do echo %%i & goto out :out pause Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 14. Februar 2005 Melden Teilen Geschrieben 14. Februar 2005 Mit Tokens=15 wird ausgegeben 1 for /f "tokens=15 skip=6 delims=." %%i in ('ipconfig') do echo %%i & goto out :out pause Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 14. Februar 2005 Melden Teilen Geschrieben 14. Februar 2005 Mit for /f "tokens=15-16 skip=6 Delims=." %%i in ('ipconfig') do echo %%i %%j > ipc.txt & goto out1 :out1 pause wird ausgegeben 1 9 hinter der neun steht ein nicht druckbarerr Code, wahrscheinlich ein EOL. Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 14. Februar 2005 Melden Teilen Geschrieben 14. Februar 2005 Und so kommen die Adressen in Variablen. for /f "tokens=15-16 skip=6 Delims=." %%i in ('ipconfig') do ( set network=%%i set host=%%j ) & goto out :out echo %network% echo %host% pause Unterlagen dazu bei BB Zitieren Link zu diesem Kommentar
varnik 10 Geschrieben 14. Februar 2005 Autor Melden Teilen Geschrieben 14. Februar 2005 Danke für deine Hilfe. Funktioniert super!!! Ich muss meine Kopfhoerer finden (siehe unten):-) Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.