Microsoft MVPs inside





 MCSEboard.de – IT Pro Forum zu Windows Server 2008 R2 / 2008 / 2003 & Windows 7 / Vista / XP
Registrieren Hilfe Regeln Benutzerliste Suchen Heutige Beiträge Alle Foren als gelesen markieren

Windows Forum — Allgemein


Alles zum Thema Windows Clients für den Desktop: Windows 95 / 98 / NT / 2000 / XP / Vista / Win 7 — Q & A zu den Windows Client Versionen sowie Windows Media Center / Windows Home Server


Antwort
     
Themen-Optionen
Alt 14.02.2005, 10:02   #1
Board Veteran
 
Benutzerbild von varnik
 
Offline
Registriert seit: 11-2003
Ort: Mittelfranken
Beiträge: 1.391
Einzelne Eintraege einer Zeile auslesen

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

Geändert von varnik (14.02.2005 um 10:13 Uhr).

Signatur
Die Kenntnis einiger Prinzipien kompensiert die Unkenntnis mehrer Fakten.
Jede Aufgabe hat mindestens zwei Lösungen. Eine Einfache und die zuerst Eingefallene.
mfg Nik

    Mit Zitat antworten
Alt 14.02.2005, 10:23   #2
Board Veteran
 
Benutzerbild von Flare
 
Offline
Registriert seit: 12-2002
Ort: Köln
Beiträge: 970
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

Signatur
MCP/MCSA2000/MCSA2003/MCSE2000/MCSE2003/MCTS2008/MCITP-EA/SA

    Mit Zitat antworten
Alt 14.02.2005, 13:17   #3
Board Veteran
 
Benutzerbild von Finanzamt
 
Offline
Registriert seit: 12-2004
Ort: Middle Of NowHere
Beiträge: 1.116
Hi!
Hier 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!

Signatur
Die vollkommene sprachliche Form ist klar und zugleich nicht banal.
Die sprachliche Form ist am klarsten, wenn sie aus lauter üblichen Wörtern besteht;
aber dann ist sie banal

    Mit Zitat antworten
Alt 14.02.2005, 13:31   #4
Board Veteran
 
Benutzerbild von varnik
 
Offline
Registriert seit: 11-2003
Ort: Mittelfranken
Beiträge: 1.391
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.

Signatur
Die Kenntnis einiger Prinzipien kompensiert die Unkenntnis mehrer Fakten.
Jede Aufgabe hat mindestens zwei Lösungen. Eine Einfache und die zuerst Eingefallene.
mfg Nik

    Mit Zitat antworten
Alt 14.02.2005, 13:49   #5
Expert Member
 
Benutzerbild von lefg
 
Offline
Registriert seit: 12-2003
Ort: Lübeck
Beiträge: 14.543
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

Signatur
Das Messbare messen, das Nichtmessbare messbar machen. Galilei.

    Mit Zitat antworten
Alt 14.02.2005, 15:42   #6
Board Veteran
 
Benutzerbild von varnik
 
Offline
Registriert seit: 11-2003
Ort: Mittelfranken
Beiträge: 1.391
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.

Signatur
Die Kenntnis einiger Prinzipien kompensiert die Unkenntnis mehrer Fakten.
Jede Aufgabe hat mindestens zwei Lösungen. Eine Einfache und die zuerst Eingefallene.
mfg Nik

    Mit Zitat antworten
Alt 14.02.2005, 16:07   #7
Expert Member
 
Benutzerbild von lefg
 
Offline
Registriert seit: 12-2003
Ort: Lübeck
Beiträge: 14.543
Code:
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
Code:
for /f %%i in ('ipconfig') do echo %%i
pause
quasi das Gleiche.

Signatur
Das Messbare messen, das Nichtmessbare messbar machen. Galilei.

    Mit Zitat antworten
Alt 14.02.2005, 16:19   #8
Expert Member
 
Benutzerbild von lefg
 
Offline
Registriert seit: 12-2003
Ort: Lübeck
Beiträge: 14.543
Mit Skip werden Zeilen übersprungen.
Code:
for /f "skip=6" %%i in ('ipconfig') do echo %%i
pause

Signatur
Das Messbare messen, das Nichtmessbare messbar machen. Galilei.

    Mit Zitat antworten
Alt 14.02.2005, 16:24   #9
Expert Member
 
Benutzerbild von lefg
 
Offline
Registriert seit: 12-2003
Ort: Lübeck
Beiträge: 14.543
Mit Tokens und * werden wieder ganze Zeilen ausgegeben.

code]
for /f "tokens=* skip=6" %%i in ('ipconfig') do echo %%i
pause
[/code]

Code:
Standardgateway . . . . . . . . . : 192.168.1.1
IP-Adresse. . . . . . . . . . . . : 192.168.1.9
Subnetzmaske. . . . . . . . . . . : 255.255.255.0

Signatur
Das Messbare messen, das Nichtmessbare messbar machen. Galilei.

    Mit Zitat antworten
Alt 14.02.2005, 16:27   #10
Expert Member
 
Benutzerbild von lefg
 
Offline
Registriert seit: 12-2003
Ort: Lübeck
Beiträge: 14.543
Mit dem Sprungbefehl wird die Schleife nach dem ersten Durchlauf beendet.

Code:
for /f "tokens=* skip=6" %%i in ('ipconfig') do echo %%i >> ipc.txt & goto out
:out
pause
Code:
IP-Adresse. . . . . . . . . . . . : 192.168.1.9

Geändert von lefg (14.02.2005 um 17:35 Uhr).

Signatur
Das Messbare messen, das Nichtmessbare messbar machen. Galilei.

    Mit Zitat antworten
Antwort


Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Letzte Zeile einer Textdatei auslesen... BNils Windows Forum — Scripting 14 10.02.2010 18:15
Zeile nach einem String auslesen und die nächste mitnehmen chris.m Windows Forum — Scripting 6 14.02.2008 09:51
Zeile aus einer Datei auslesen und in TXT-Datei wegschreiben Fragment Windows Forum — Scripting 10 29.01.2008 15:19
Eine Zeile aus einer Textdatei als Umgebungsvariable Itchy Windows Forum — Allgemein 5 14.04.2006 16:25
batch + Zeile aus textfile auslesen Dr.Lecter^ Windows Forum — Allgemein 7 01.09.2004 13:41


Alle Zeitangaben in MEZ/CET. Es ist jetzt 09:22 Uhr. Seite generiert in 0,043 Sekunden.

- Unsere Partner -

Copyright © 2000 – 2012 MCSEboard.de

Sprung zum Seitenanfang