Text filtern, mit Hilfe einer Batch Datei ?
Hallo, ich bräuchte mal die Hilfe von ein paar "Experten" :D, die sich mit den Batch-Dateien, bzw der CMD besser auskennen als ich.
Und zwar möchte ich gerne mit Hilfe einer Batch Datei Zeilen aus einer txt Datei filtern.
Die Textdatei sieht ungefähr so aus
pc01 max mustermann
pc02 manuell mueller
pc03 melanie maler
pc04 martin mann
ich möchte jetzt gerne wenn ich pc03 eingebe in die batchdatei, dass mir ide zeile mit melanie maler ausgegeben wird.
Wüsste einer wie es am besten geht ? Und hätte am besten auch einen passenden Code zur seite ? :D
Und zwar möchte ich gerne mit Hilfe einer Batch Datei Zeilen aus einer txt Datei filtern.
Die Textdatei sieht ungefähr so aus
pc01 max mustermann
pc02 manuell mueller
pc03 melanie maler
pc04 martin mann
ich möchte jetzt gerne wenn ich pc03 eingebe in die batchdatei, dass mir ide zeile mit melanie maler ausgegeben wird.
Wüsste einer wie es am besten geht ? Und hätte am besten auch einen passenden Code zur seite ? :D
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 282819
Url: https://administrator.de/contentid/282819
Ausgedruckt am: 25.11.2024 um 16:11 Uhr
13 Kommentare
Neuester Kommentar
Moin @meisterluehrs,
Gruß jodel32
@echo off
set /p search=Rechnernamen eingeben:
findstr /i /c:"%search%" "C:\datei.txt"
Zitat von @meisterluehrs:
okay, eigentlich verstehe ich das Skript, jedoch fehlt dort die Ausgabe oder ?
im Moment wird alles auf der Konsole ausgegeben ... mehr wolltest du ja laut deinem Text nicht...okay, eigentlich verstehe ich das Skript, jedoch fehlt dort die Ausgabe oder ?
Ich habe vergessen zu schreiben, dass ich am liebsten die Zeile aus der Textdatei in eine andere Textdatei geschrieben haben möchte, in der nur diese eine Zeile dann steht
Na dann leitest du die Ausgabe von findstr stattdessen einfach in diese Datei um :findstr /i /c:"%search%" "C:\datei.txt" >"C:\export.txt"
Neee das, set /p wartet auf eine Eingabe deines Suchstrings in der Konsole !! Du wollstest ja selbst eine Eingabe in der Konsole machen deswegen dieses Konstrukt...
In der Variablen search wird dann diese Eingabe zwischengespeichert und als Suchstring bei findstr verwendet.
Wenn du den String stattdessen vorgeben willst musst du das /p weglassen und so schreiben:
In der Variablen search wird dann diese Eingabe zwischengespeichert und als Suchstring bei findstr verwendet.
Wenn du den String stattdessen vorgeben willst musst du das /p weglassen und so schreiben:
set "search=pc03"
Zitat von @meisterluehrs:
erstmal danke, es hat funktioniert. Mal ne etwas andere Frage, geht es auch so Informationen aus einem Lock File zu ziehen ?
Wat für'n "Lock"-File ??erstmal danke, es hat funktioniert. Mal ne etwas andere Frage, geht es auch so Informationen aus einem Lock File zu ziehen ?
Wenn's ANSI Text ist kein Problem. Wenn du mit Unicode hantierst ist die Powershell besser geeignet:
select-string
Mit Regular Expressions findest du alles was du willst, sei es noch so komplex.
natürlich, s.o.
Beschäftige dich mal mit Powershell das ist für solche Sachen wesentlich besser geeignet. Batch ist ein Auslaufmodell ...
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen.
Beschäftige dich mal mit Powershell das ist für solche Sachen wesentlich besser geeignet. Batch ist ein Auslaufmodell ...
- http://www.powershellpraxis.de/
- http://www.msxfaq.de/code/powershell/powershell.htm
- PowerShell for Runaways - Part I
- PowerShell For Runaways - Part II
- http://powershell.com/cs/
- http://powershell.com/cs/media/13/default.aspx
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen.
Benutz bitte mal unsere Suche, das wurde hier schon bis zum Abwinken behandelt:
Danke.
Gruß jodel32
Danke.
Gruß jodel32
Moin,
Ersetzt z.B. den Namen hinter dem Rechner pc03 in deiner Datei durch einen anderen.
Gruß grexit
ich hab mich da jetzt mal ne Stunde durchgeklickt und werde leider net schlauer :/
Wie jodel schon sagt, fang am besten direkt mit Powershell anpowershell -Executionpolicy ByPass -Command "(gc 'C:\datei.txt') -replace '(^pc03) (.*)','$1 max muster' | out-file 'C:\datei.txt'"
Gruß grexit