Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Auslesen einer Datei

Frage Entwicklung Batch & Shell

Mitglied: LordBela

LordBela (Level 1) - Jetzt verbinden

12.03.2012, aktualisiert 18.10.2012, 2766 Aufrufe, 12 Kommentare

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
Mitglied: michi1983
12.03.2012 um 08:55 Uhr
Morgen,

die Suchfunktion findet über 400 Fragen darüber hier im Forum:
http://www.administrator.de/index.php?x=0&y=0&query=batch+datei ...

Gruß
Bitte warten ..
Mitglied: LordBela
12.03.2012 um 09:18 Uhr
Danke schon mal für die schnelle Antwort.
Leider wird meist immer eine Zeile geseucht und diese dann ausgegeben oder gespeichert.
Mich interessiert aber die nächste Zeile, da diese IP-Adresse später für die Netzwerkkonfiguration genutzt werden soll und möglicher Weise auch andere Angaben, die in die Datei eingetragen werden.
Zunächst reicht mir aber das Auslesen der nächsten Zeile.
Bitte warten ..
Mitglied: Skyemugen
12.03.2012, aktualisiert 18.10.2012
Aloha,

das Thema ist neu und interessant ... zumindest laut unserer Forensuche
01.
for /f "delims=:" %%s in ('findstr /i /n "Computername2" "E:\Skripte\txt.txt"') do set /a "Zeile=%%s +1" 
02.
for /f "tokens=1,* delims=:" %%m in ('findstr /n "^" "E:\Skripte\txt.txt"^|findstr "%Zeile%:"') do echo %%n
greetz André
Bitte warten ..
Mitglied: LordBela
12.03.2012 um 10:49 Uhr
wow, vielen Dank!
Das Script funktioniert Super!

Kannst du das Script vielleicht noch erklären und sagen was ich ändern muss um eventuell die übernächste Zeile auszugeben?

Mit freundlichen Grüßen LordBela
Bitte warten ..
Mitglied: LordBela
12.03.2012 um 10:54 Uhr
Zitat von LordBela:
Das Script funktioniert Super!

fast jedenfalls ;) bei einem nicht vorhandenen Eintrag wird das gesamte Dokument angezeigt ^^
Bitte warten ..
Mitglied: Skyemugen
12.03.2012 um 11:04 Uhr
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: 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 ^^

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
01.
if defined Zeile
vor die zweite Schleife zu setzen (selbe Zeile)
Bitte warten ..
Mitglied: LordBela
12.03.2012 um 11:42 Uhr
ja, das mit der übernächsten war n FAIL von mir^^
is halt Montag xD

Vielen Dank für deine Hilfe :D

PS: super Seite hier, allerdings hoffe ich, dass Antworten, wie "sufu nutzen" oder "google doch" die Seltenheit sind. ;)
(is nicht an dich gerichtet michi1983, is meiner Meinung nach ein generelles Problem in vielen Foren)
Bitte warten ..
Mitglied: Skyemugen
12.03.2012 um 11:59 Uhr
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
Bitte warten ..
Mitglied: LordBela
12.03.2012 um 16:30 Uhr
oh Entschuldigung, nächstes Fettnäpfchen... ^^

gut, den Link hab ich glattweg übersehen, das größere Problem haben allerdings die Googlenutzer. Mir ist es ja auch schon oft passiert, dass man was sucht, und nicht die Formulierung der anderen trifft. Dann findet man eben nur den Satz: "sufu nutzen, fred gibts schon" und dann darf man sich erstmal im xy-forum registrieren, damit man die sufu nutzen kann.

Allerdings hast du hier recht. Etwas mehr Aufmerksamkeit von mir wäre besser gewesen. Asche auf mein Azubi-Haupt ;)
Aber nochmal großen Dank für deine Hilfe.

Mit freundlichen Grüßen LordBela
Bitte warten ..
Mitglied: Skyemugen
12.03.2012 um 19:23 Uhr
Zitat von LordBela:
und dann darf man sich erstmal im xy-forum registrieren, damit man die sufu nutzen kann.
http://www.benutzer.de
Bitte warten ..
Mitglied: bastla
12.03.2012 um 22:16 Uhr
@skye
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
Bitte warten ..
Mitglied: Skyemugen
13.03.2012 um 07:16 Uhr
Aloha bastla,

stimmt, irgendwie verwechsele ich das immer mit irgendetwas anderem, wo eine führende Null vorkommt, naja dann darf der TE darüber nachdenken, was bei 08+9 passieren würde ;) Ich werd's korrigieren.

greetz André
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
PHP
gelöst Externe XML-Datei in PHP auslesen (18)

Frage von Akrosh zum Thema PHP ...

Batch & Shell
gelöst PowerShell, Log Datei auslesen, bei Änderungen E-Mail senden (12)

Frage von swissbull zum Thema Batch & Shell ...

Installation
gelöst Mit Powershell in einer Datei eine Zeile auslesen (6)

Frage von Bommi1961 zum Thema Installation ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...