technox
Goto Top

Mit Batchbefehl in einer TXT eine bestimmte Textstelle abfragen?

Erstmal Hallo face-smile Ich freue mich das es Foren wie dieses hier gibt & hab allsgleich auch ne etwas spezielle Frage die aber nicht wirklich schwer sein sollte..

Systeme: WINXP /VISTA /NT4 /WINSERVER 2000/2003

Ich baue grade (ganz am anfang) eine kleine Diagnose Routine. Welche erstmal diverse Commandozeilen Befehle wie zb. ipconfig etz. abfragt.
Alle Ergebnisse werden dann in eine Beispiel.TXT datei geschrieben. (diese Abfrage soll zukünftig als Job an alle PCS im Netzwerk ausgetragen & lokal beim Start mitgestartet werden..)

Da ich aber eine gewisse Intelligenz einbauen möchte will ich anhand der dort in der TXT eingetragenen Daten wie zb. IP, Gateway etz.
eine kurze Prüfung durchführen. So das ich nicht jedesmal endlos fummeln muss um ne schlichte Basisdiagnose zu erhalten & bei Notebooks ausserhalb des Remotezugriffs dem Nutzer schlicht sagen kann: Drücke auf diese Datei. Gibt diese irgendwelche Fehler zurück? Wie lautet der Fehlercode ()?
Da die Zeilen je nach Rückgabewert ja etwas variieren sollte es doch möglich sein zu "springen" wenn ja wie?
Dachte an GOTO nur wie gebe ich das Ziel an? Und wie sag ich im das er nur das was Rechts danaben steht vergleichen soll?

Hatte vor den "Wert1" mit einem anderen Wert aus einer "sauberen" TXT abzugleichen.
bsp:
If Wert1 (in Textdatei 1 in Zeile/ oder besser bei Marker oder wie auch immer) nicht gleich dem Vergleichswert (in Textdatei 2)
set IPCON = 1 else 0
Schreibe: IP STIMMT NICHT in Logdatei.

Da ich ned ganz so der Scriptingfritze bin happerts halt leider etwas an den Vocabeln.. ich weis wies funktionieren soll - aber ich
kanns nicht schreiben face-sad Wills aber zumindest zum grossteil selbst hinbekommen..

Zusammengefasst:

Frage: Wie lese ich bestimmte Textteile aus Textfiles explizit aus & kann diese vegleichen? Am besten mit einem Rückgabe Wert.
2 DATENFILES zu vergleichen is ja kein Hexenwerk nur innerhalb dieser bestimmte Werte zu vergleichen übersteigt mein können..

Frage: Wie schreibe ich WERTX an eine bestimmte stelle innerhalb einer TXT?

Wenns mal klappt will ich das ganze etwas erweitern um zb. Reg. Werte auszulesen (mit zb. vbs) so das ich zb. Eine grobe Lizensverwaltung aufbauen kann ala:
Pc mit Ip / Nutzer / ART (notebook/workstation) hat zb. office version XX mit Dieser Serial: 1h1l 1kj1 1245 lkh2 (bsp) Und diesem Windows KEY.
Zudem eine kleine Abfrage nach den 10 bekanntesten Würmern/Vieren dateien.
Ziel ist eine bessere Bestands übersicht Verwalteter Recurcen (is n generelles Ziel & ne gute Übung um breitgefächert praxisnah Scripten zu lernen..)
Wo bekomme ich gute Beispiele & Erklärungen zu den den einzelnen Befehlen her mit denen ich sauber lernen kann?

Hilfe...

Content-Key: 93970

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

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

Member: miniversum
miniversum Aug 08, 2008 at 16:13:44 (UTC)
Goto Top
Hilfe zu befehlen bekomst du in der cmd indem du ein /? angibst. Also z.B.
set /?
for /?
findstr /?
Beispielcodes findest du z.B. hier in diesem Bereich ;)

Nun zu dienem Problem. Ich Formuliere einfach mal die Aufgabenstellung für dich so um das man das so nach einander umsetzen kann.
1. Finde in einer Textdatei die Zeile inder ein bestimmtes Schlüsselwort steht.
2. Speichere diese Zeile, oder ein Teil davon, in Variable1.
3. Finde in einer anderen Textdatei die Zeile inder ein bestimmtes Schlüsselwort steht.
4. Speichere diese Zeile, oder ein Teil davon, in ein Variable2.
5. Vergleiche Variable1 mit Variable2.

Beschäftige dich mal mit dem Findstr befehl. Hilfe dazu mit findstr /?
Beschäftige dich außerdem mit dem For-Befehl. Hilfe dazu mit For /?. Damit kannst du die gefundene Zeile in einer Variabeln speichern.
Sollte es etwas Komplizierter werden, das z.B. mehrere Zeilen die Suchkriterien erfüllen, das z.B. bei PCs mit mehreren Netzwerkkarten vorkommen kann, Müßtest du unter Umständen auch intirekt beim findstr mit dem Parameter /N arbeiten um dir die Zeilennummer einer eindeutigen Zeile zu ermitteln und ab dieser Zeile kannst Du dann eine Bestimmte Anzahl dazuaddieren. Diese zeile kanst du dann mit dem Forbefehl wieder auslesen.
Was du dir auc anschauen solltest ist der set Befehl. Hilfe unter set /? um Variabeln zu speichern und mit Zahlen zu rechnen.
Zum Verlgeich benötigst du dann noch den if Befehl. Hilfe unter if /?.
Ich hoffe das hilft dir erstmal weiter. Schau dir einfach einige Batchdateien an die hier schon gepostet wurden um nachzuvollziehen was dort geschieht.
Member: TechnoX
TechnoX Aug 11, 2008 at 07:31:00 (UTC)
Goto Top
Danke das half schon weiter - learning by Doing ist und bleibt einfach das womit man am meisten lernt. Ich hoff ich krieg die Basics schnell drauf. Schleifen & co waren mir damals bei C schon n Graus.. If /else do & while ging ja noch aber mit for Schleifen steh ich voll auf Kriegsfuss.. auf jedenfall hab ich nun mal was wo ich mich weiter einlesen kann danke.
Member: miniversum
miniversum Aug 11, 2008 at 08:39:00 (UTC)
Goto Top
Batches mit For findest du hier viele, auch um Dateien einzulesen und sowas.
Und nchfragen geht ja auch noch.