Mit Batchbefehl in einer TXT eine bestimmte Textstelle abfragen?
Erstmal Hallo
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
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...
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
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...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 93970
Url: https://administrator.de/forum/mit-batchbefehl-in-einer-txt-eine-bestimmte-textstelle-abfragen-93970.html
Ausgedruckt am: 10.04.2025 um 21:04 Uhr
3 Kommentare
Neuester Kommentar
Hilfe zu befehlen bekomst du in der cmd indem du ein /? angibst. Also z.B.
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.
set /?
for /?
findstr /?
Beispielcodes findest du z.B. hier in diesem Bereich ;)for /?
findstr /?
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.