Auslesen einer Datei
Hallo,
als angehender Fachinformatiker hab ich mich bei euch angemeldet, weil ich noch einige Fragen habe, bevor ich zu einem Profi wie Ihr werde.
Mein Problem ist, dass ich eine .txt Datei auslesen möchte.
Ich möchte eine bestimmte Zeile in der Datei finden und die nächste Zeile ausgeben.
Im genauen soll ein Computername in der Datei gesucht werden und die darunter stehende IP-Adresse ausgegeben werden.
Der Aufbau der Datei ist wie folgt:
Computer1
192.168.0.1
Computer2
192.168.0.2
...
Da ich so gut wie keine Ahnung von Batch-Scripten habe würde ich mich über Hilfe sehr freuen.
Mit freundlichen Grüßen
LordBela
als angehender Fachinformatiker hab ich mich bei euch angemeldet, weil ich noch einige Fragen habe, bevor ich zu einem Profi wie Ihr werde.
Mein Problem ist, dass ich eine .txt Datei auslesen möchte.
Ich möchte eine bestimmte Zeile in der Datei finden und die nächste Zeile ausgeben.
Im genauen soll ein Computername in der Datei gesucht werden und die darunter stehende IP-Adresse ausgegeben werden.
Der Aufbau der Datei ist wie folgt:
Computer1
192.168.0.1
Computer2
192.168.0.2
...
Da ich so gut wie keine Ahnung von Batch-Scripten habe würde ich mich über Hilfe sehr freuen.
Mit freundlichen Grüßen
LordBela
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 181768
Url: https://administrator.de/contentid/181768
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
12 Kommentare
Neuester Kommentar
Aloha,
das Thema ist neu und interessant ... zumindest laut unserer Forensuche
greetz André
das Thema ist neu und interessant ... zumindest laut unserer Forensuche
for /f "delims=:" %%s in ('findstr /i /n "Computername2" "E:\Skripte\txt.txt"') do set /a "Zeile=%%s +1"
for /f "tokens=1,* delims=:" %%m in ('findstr /n "^" "E:\Skripte\txt.txt"^|findstr "%Zeile%:"') do echo %%n
greetz André
Aloha,
da ist ja wieder mehr Erklärung als Funktion ... na dann mal die grobe Zusammenfassung:
Mittels einer Schleife, welche die Doppelpunkte als Trennzeichen setzt, wird im Such-Befehl, welcher in der angegebenen Datei nach dem angegebenen Wort sucht, mit zeilenummerierter Ausgabe gearbeitet, diese dann so aussähe:
Die zweite Schleife arbeitet dann dieses Mal mit Abschnitt 1 (vor den Doppelpunkten) und alles was danach kommt, wobei hier erst ein mal die Datei komplett nummeriert ausgeben wird und direkt nach der aus Schleife 1 erhaltenen (addierten) Zeilennummer gefiltert wird, wobei jetzt der zweite Teil des Fundes ausgeben wird:
Willst du die übernächste Zeile zusätzlich oder als Ersatz der nächsten (momentanen Zeile)? Als Ersatz kannst du wohl selbst berechnen ... als Zusatz könntest du mit Hilfe deines Verstandes und der vorhandenen Programmlogik auch die Lösung finden
greetz André
Es war bisher auch nie die Rede, dass dieser Eintrag nicht existieren kann ... man sollte als TE schon klare Angaben machen. ... welcher Eintrag eigentlich, der Computername oder die fehlende IP?
im Falle des Computernamens wäre
vor die zweite Schleife zu setzen (selbe Zeile)
da ist ja wieder mehr Erklärung als Funktion ... na dann mal die grobe Zusammenfassung:
Mittels einer Schleife, welche die Doppelpunkte als Trennzeichen setzt, wird im Such-Befehl, welcher in der angegebenen Datei nach dem angegebenen Wort sucht, mit zeilenummerierter Ausgabe gearbeitet, diese dann so aussähe:
3:Computername2
. Da in der Schleife keine weiteren Teile (tokens) deklariert sind, wird der erste Abschnitt genommen, was in diesem Fall die Zeilennummer ist und wird mittels set
in die Variable Zeile
geschrieben, welche per Algebrafunktion /a
um 1
addiert wird, sodass 3+1=4 ergibt.Die zweite Schleife arbeitet dann dieses Mal mit Abschnitt 1 (vor den Doppelpunkten) und alles was danach kommt, wobei hier erst ein mal die Datei komplett nummeriert ausgeben wird und direkt nach der aus Schleife 1 erhaltenen (addierten) Zeilennummer gefiltert wird, wobei jetzt der zweite Teil des Fundes ausgeben wird:
4:192.168.0.2
.Willst du die übernächste Zeile zusätzlich oder als Ersatz der nächsten (momentanen Zeile)? Als Ersatz kannst du wohl selbst berechnen ... als Zusatz könntest du mit Hilfe deines Verstandes und der vorhandenen Programmlogik auch die Lösung finden
greetz André
Zitat von @LordBela:
fast jedenfalls ;) bei einem nicht vorhandenen Eintrag wird das gesamte Dokument angezeigt ^^
fast jedenfalls ;) bei einem nicht vorhandenen Eintrag wird das gesamte Dokument angezeigt ^^
Es war bisher auch nie die Rede, dass dieser Eintrag nicht existieren kann ... man sollte als TE schon klare Angaben machen. ... welcher Eintrag eigentlich, der Computername oder die fehlende IP?
im Falle des Computernamens wäre
if defined Zeile
Nein, das generelle Problem in vielen Foren ist, dass die SuFu nicht genutzt wird ... gerade im Batch-Bereich hier erfinden wir das Rad immer und immer wieder neu, weil User a) nicht suchen und b) nicht mitlesen bzw. -denken, teilweise ... den Suchtreffer der Forensuche habe ich dir ja in meinem ersten Beitrag verlinkt ... den du aber nicht gelesen hast, da du sonst die Anfrage nach dem wie nicht gestellt hättest ...
das am Fred ist von mir
das am Fred ist von mir
Zitat von @LordBela:
und dann darf man sich erstmal im xy-forum registrieren, damit man die sufu nutzen kann.
http://www.benutzer.de und dann darf man sich erstmal im xy-forum registrieren, damit man die sufu nutzen kann.
@skye
Minimale Korrektur: Die Zeilennummer wird ohne führende Null ausgegeben (daher also in Deinem Beispiel
Grüße
bastla
Minimale Korrektur: Die Zeilennummer wird ohne führende Null ausgegeben (daher also in Deinem Beispiel
3:Computername2
bzw 4:192.168.0.2
) - ansonsten würde es mit der Addition bei Zeile 8 oder 9 ungemütlich ...Grüße
bastla