Text finden und gefiltert speichern
Hi
Trotz reichlicher Suche finde ich keinen passenden Beitrag, darum frag ich mal direkt an.
Gegeben ist eine Textdatei mit der Ausgabe von net view > ...
Der Inhalt sieht also wie folgt aus;
Servername Beschreibung
\\PC1
\\PCMUH
\\KISTE
Der Befehl wurde erfolgreich ausgefhrt.
Jetzt möchte ich, dass die Computernamen (ohne die \\ davor) untereinander in eine weitere Textdatei ausgegeben werden.
Soll also so aussehen;
PC1
PCMUH
KISTE
Bisher habe ich es mit dieser Datei versucht;
set TEXTOK=Der Befehl wurde erfolgreich
set NETVIEWFILE=netview.txt
set COMPUTERS=\\*
set FINISHFILE=Computer.txt
net view > %NETVIEWFILE%
find "%TEXTOK%" "%NETVIEWFILE%" && (
for /f %%L IN (%NETVIEWFILE%) DO findstr "%COMPUTERS%" "%NETVIEWFILE%" > %FINISHFILE%
)
Ausgegeben wird dadurch der gesamte Inhalt der netview.txt, was ja nicht Sinn der Sache ist.
Diese Datei funktioniert dadurch logischerweise so nicht und ich komme aufgrund meines begrenzten Wissens bezüglich der for schleifen in Verbindung mit tokens ect. einfach nicht weiter.
Trotz reichlicher Suche finde ich keinen passenden Beitrag, darum frag ich mal direkt an.
Gegeben ist eine Textdatei mit der Ausgabe von net view > ...
Der Inhalt sieht also wie folgt aus;
Servername Beschreibung
\\PC1
\\PCMUH
\\KISTE
Der Befehl wurde erfolgreich ausgefhrt.
Jetzt möchte ich, dass die Computernamen (ohne die \\ davor) untereinander in eine weitere Textdatei ausgegeben werden.
Soll also so aussehen;
PC1
PCMUH
KISTE
Bisher habe ich es mit dieser Datei versucht;
set TEXTOK=Der Befehl wurde erfolgreich
set NETVIEWFILE=netview.txt
set COMPUTERS=\\*
set FINISHFILE=Computer.txt
net view > %NETVIEWFILE%
find "%TEXTOK%" "%NETVIEWFILE%" && (
for /f %%L IN (%NETVIEWFILE%) DO findstr "%COMPUTERS%" "%NETVIEWFILE%" > %FINISHFILE%
)
Ausgegeben wird dadurch der gesamte Inhalt der netview.txt, was ja nicht Sinn der Sache ist.
Diese Datei funktioniert dadurch logischerweise so nicht und ich komme aufgrund meines begrenzten Wissens bezüglich der for schleifen in Verbindung mit tokens ect. einfach nicht weiter.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 133061
Url: https://administrator.de/forum/text-finden-und-gefiltert-speichern-133061.html
Ausgedruckt am: 22.05.2025 um 01:05 Uhr
4 Kommentare
Neuester Kommentar
Hallo ForgottenRealm!
ein anderes als das gewünschte Ergebnis bringt (hier allerdings ziemlich sicher egal, daher dürfte es mit Deiner Version keine Probleme geben).
- ich kann Dir nur leider keine Adressen nennen (aber schau mal in die ) , sondern nur auf die Onlinehilfe mit zB "
Grüße
bastla
Statt \\\\ nur noch \\ - warum hast du vier mal \ gemacht?
Ist eigentlich nicht nötig, sondern nur eine exaktere Umsetzung der Suche - Erklärung: Da ich (bevorzugt) "findstr
" verwende und dort im Suchbegriff mit "\" eine "Maskierung" erfolgt, bedeutet "\\", dass nach einem einfachen "\" zu suchen wäre (was ja aber auch genügen sollte) - um aber (genauer) nur Zeilen mit "\\" zu finden, muss dann eben jeder "\" verdoppelt werden ...Aus ">>"%FINISHFILE%" echo %%i" habe ich "echo %%i>>"%FINISHFILE%"" gemacht. - Warum ist die Echo Ausgabe in deiner Zeile in einer andren Reihenfolge?
Einerseits eine Stilfrage, gelegentlich aber vorteilhaft, wenn zB einecho Aktueller Wert: 2>Datei.txt
Wie es mir scheint, werden Zeichen mit "delims=[zeichen]" im set (*) ignoriert, oder irre ich da?
"delims
" ist von "delimiters" abgleitet und bedeutet daher "Trennzeichen" - anhand dieser Trennzeichen wird in einer "for /f
"-Schleife die Zeile in einzelne "tokens
" aufgeteilt - im konkreten Fall angenehmer Nebeneffekt: Das Trennzeichen ist nicht Bestandteil der einzelnen Teile ("tokens") und "verschwindet" daher. Noch ein kurzes Beispiel zur Veranschaulichung (direkt an der Kommandozeile zu verwenden, in einem Batch "%%a", "%%b" und "%%c" anstelle von "%a", "%b" und "%c"):for /f "tokens=1-3 delims=." %a in ("%date%") do @echo %c %b %a
Gibt es eine Internetseite, auf welcher Verständlich erklärt wird ...
Vermutlich viele for /?
" bzw auf die vielen konkreten Batchbeispiele hier im Forum (in denen fast überall ein "for
" vorkommt), verweisen.Gibt es eine Möglichkeit, die Datei vor dem Hinzufügen von weiteren Computernamen darauf zu prüfen, ob dieser Computername schon vorhanden ist und wenn ja, dass dieser nicht erneut eingetragen wird ?
Etwa so (auf Basis der von Dir bevorzugten Schreibweise):for /f "delims=\" %%i in ('net view^|findstr "\\"') do findstr /x "%%i" "%FINISHFILE%">nul || echo %%i>>"%FINISHFILE%"
bastla