Top-Themen

Aktuelle Themen (A bis Z)

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

Begriff in Dateiliste mit Texten suchen und Dateiname mit Zeile ausgeben ohne Anzeige der Dateien ohne dem Suchbegriff

Frage Entwicklung Batch & Shell

Mitglied: ET0815

ET0815 (Level 1) - Jetzt verbinden

11.01.2012 um 22:49 Uhr, 3832 Aufrufe, 12 Kommentare

Hallo! Ich möchte aus einem Ordner mit mehreren hundert Textdateien, welche ein Programm ständig anlegt, Begriffe suchen. Dabei benötige ich den/die Dateinamen in der sich der Suchbegriff befindet mit Ausgabe der kopletten Zeile.

Zum Suchen der Begriffe in den Textdateien, verwende ich bis jetzt den FIND-Befehl. Denn ich benötige den Dateinamen und die Zeile mit den entsprechendem Begriff. Bei der Suche mit FIND, werden mir dann die Dateinamen und die Zeilen mit dem Suchbegriff mit ausgegeben. Nur dabei werden auch die weit über hundert anderen Textdateien, welche den Begriff nicht mit behinhalten mit aufgelistet. Nun meine Frage, wie kann ich das Auflisten der Dateien, welche den Begriff nicht beinhalten unterbinden?
Mitglied: bastla
11.01.2012 um 23:01 Uhr
Hallo ET0815 und willkommen im Forum!

Verwende anstelle von "find" einfach "findstr" ...

Grüße
bastla
Bitte warten ..
Mitglied: ET0815
13.01.2012 um 22:18 Uhr
Oh danke. Hatte das schonmal probiert aber immer die falschen Schalter gesetzt, aber nun funktionierts. Besteht eigentlich auch die Möglichkeit, mehrere Suchbegriffe die in einer Zeile stehen sollen zu suchen? Es sollen quasi zwei oder noch mehr Kriterien zu treffen.
Bitte warten ..
Mitglied: bastla
13.01.2012 um 22:30 Uhr
HalloET0815!
Es sollen quasi zwei oder noch mehr Kriterien zu treffen.
Versuch es so:
findstr "Kriterium1" *.txt|findstr "Kriterium2"|findstr "Kriterium3"
Grüße
bastla
Bitte warten ..
Mitglied: ET0815
14.01.2012 um 01:12 Uhr
Danke, läuft super! Jetzt hab ich nur noch das Problem, das Begriffe mit Umlauten nicht gefunden werden. Wie mach ich das nur wieder? Sorry, ich weiß ich nerver mit meinen für euere Verhältnissen einfach Sachen.
Bitte warten ..
Mitglied: bastla
14.01.2012 um 11:39 Uhr
Hallo ET0815!

Versuch es mit dem Umweg über eine "Kriteriendatei": Erstelle dazu zB die Datei "D:\Kriterium1.txt" mit dem Suchkriterium (bzw für eine "Oder"-Verknüpfung auch mehrere Kriterien in jeweils eigenen Zeilen) als Inhalt und verwende sie dann so:
findstr /g:"D:\Kriterium1.txt" *.txt
Grüße
bastla
Bitte warten ..
Mitglied: ET0815
15.01.2012 um 23:34 Uhr
Danke bastal, funkioniert ebenfalls super! Einmal bräuchte ich deine Hilfe nochmal. Kann man irgendwie das Erstellungsdatum der entsprechenden Dateien mit in der Zeil mit dem gefundenem Begriff ausgeben? Aufgrund der hohen Datenmenge, bräuchte ich dies, zwecks der Übersichtlichkeit. Danke schonmal im vorraus.

Gruß
Toni
Bitte warten ..
Mitglied: bastla
16.01.2012 um 12:15 Uhr
Hallo ET0815!

Änderungsdatum wäre einfacher - ungetestet etwa so:
01.
@echo off & setlocal 
02.
set "Ordner=D:\Ordner mit mehreren hundert Textdateien" 
03.
set "Ausgabe=D:\Ergebnisse.txt" 
04.
 
05.
pushd "%Ordner%" 
06.
del "%Ausgabe%" 2>nul 
07.
08.
    for /f "tokens=1* delims=:" %%i in ('findstr /g:"D:\Kriterium1.txt" *.txt') do echo %%i_%%~ti_%%j 
09.
    for /f "tokens=1* delims=:" %%i in ('findstr /g:"D:\Kriterium2.txt" *.txt') do echo %%i_%%~ti_%%j 
10.
)>>"%Ausgabe%" 
11.
popd
Grüße
bastla

[Edit] auf Ausgabe Datum geändert [/Edit]
Bitte warten ..
Mitglied: ET0815
16.01.2012 um 21:03 Uhr
Danke für deine Mühe bastla, aber das Ergebnis ist leider das Gleiche wie mit dem einfachen FINDSTR-Befehl. Nur das : Zeichen hinter dem Laufwerksbuchstaben wurde bei der Ausgabe mit einem _ Zeichen ausgetauscht.
Weis nicht ob man den DIR-Befehl mit dem FINDSTR-Befehl kombinieren kann. Habe schon experimentiert, aber ohne auswertbaren Erfolg.

Gruß
Toni

PS: Wobei das Änderungsdatum wäre auch ok, da die Dateien zu einem Archiv gehören und nicht mehr geändert werden. Daher ist das Änderungsdatum=Erstellungsdatum.
Bitte warten ..
Mitglied: bastla
16.01.2012 um 21:13 Uhr
Hallo ET0815!

Wie sieht denn Dein verwendeter Batch aus? In meiner Variante hätte (aufgrund des "pushd" vorweg) eigentlich nur der Dateiname ausgegeben werden sollen ...

... anyhow - wenn Du vollständige Pfade erhältst, kannst Du ja diese ja wieder zusammensetzen:
for /f "tokens=1-2* delims=:" %%i in ('findstr /g:"D:\Kriterium1.txt" *.txt') do for %%a in ("%%i:%%j") do echo %%~a_%%~ta_%%k
Grüße
bastla

[Edit] auf Ausgabe Datum geändert [/Edit]
Bitte warten ..
Mitglied: ET0815
16.01.2012 um 21:25 Uhr
Die Batch ist sehr lang, da diese noch mehr macht, außer das Suchen. Weil du meinst, das das Änderungsdatum einfacher geht, wie mache ich dies?

Zur Zeit bin ich so weit:
...
findstr /i /c:"%suche%" %archiv%*.txt >> Suchergebnis_%Suche2%.txt
start Suchergebnis_%Suche2%.txt

Den Teil den du weiter oben geschrieben hast, nehm ich zur Zeit nur in experimentellen Dateien (also die Suche mit mehreren Begriffen). Jendenfalls hab ich deinen vorletzten Script in einer separaten Datei nur mit deinem Inhalt auf meine Ordner zugeschnitten ohne mein ganzes drum herum getestet.

Gruß
Toni
Bitte warten ..
Mitglied: bastla
16.01.2012 um 21:39 Uhr
Hallo ET0815!

Vorweg: Verwende bitte zum Posten von Codeschnipsen die passende Formatierung ...
Weil du meinst, das das Änderungsdatum einfacher geht, wie mache ich dies?
Wenn Du die Datei in der Schleifenvariablen einer "for"-Schleife hast, kannst Du "~t" dafür verwenden (siehe dazu ziemlich am Ende der Ausgabe von "for /?") - im einfachsten Fall (zum Testen in der CMD-Shell, daher nur ein %-Zeichen):
for %i in (*.txt) do @echo %~ti_%i
Da das Ergebnis eines "findstr" für mehrere Dateien dem Schema
Dateiname:den Suchbegriff enthaltende Zeile
entspricht, bietet es sich an, am ersten ":" zu trennen.

Soferne Deine Variable %archiv% eine Pfadangabe enthält, sieht die Ausgabe so aus:
Laufwerk:\Pfad\Dateiname:den Suchbegriff enthaltende Zeile
- es wird hier demnach bei einer Zerlegung anhand des ":" ein Ergebnis in 3 Teilen erzeugt, von dem die ersten beiden (im Beispiel unten %%i und %%j) zusammen den gesamten Dateipfad ergeben (in Teil 3 = %%k steht dann die Textzeile) - daher (jetzt zur Verwendung in einem Batch):
for /f "tokens=1-2* delims=:" %%i in ('findstr /i /c:"%suche%" %archiv%*.txt') do for %%a in ("%%i:%%j") do >>Suchergebnis_%Suche2%.txt echo %%~a_%%~ta_%%k
Grüße
bastla

[Edit] Ich weiß auch nicht, weshalb ich die ganze Zeit anstatt des Datums die Dateigröße ausgeben wollte - ist jetzt (auch oben) korrigiert [/Edit]
Bitte warten ..
Mitglied: ET0815
16.01.2012 um 22:32 Uhr
Ich danke dir wie verrückt, genau so hab ich mir das vorgestellte! Tausend Dank! Hoffe ich darf weiter nerven, wenn ich wieder Sorgen habe.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Text-Begriff-Nummer in Datei suchen und bestimmte Zeile auslesen
Frage von chgs2011Batch & Shell13 Kommentare

Hallo, ich suche eine Möglichkeit, eine Datei nach einem Text/Begriff/Nummer zu durchsuchen, um mir dann eine bestimme Zeile auslesen ...

VB for Applications
VbScript: Textdatei nach Suchbegriff nur die nächsten drei Zeilen ausgeben
gelöst Frage von Host-essVB for Applications10 Kommentare

Moin, Moin, ich bin neu hier im Forum und auch Neuling was Vbscript betrifft. Vielleicht kann mir ja jemand ...

Batch & Shell
Power Shell Script Soll nach Suchbegriffen Zeilen aus einer Datei Filtern, aber mein Suchbegriff zeigt keine Wirkung
gelöst Frage von GeretConditBatch & Shell6 Kommentare

Hallo meine Lieben mit Administratoren, ich bin dabei ein kleines Script zu schreiben das wen es fertig ist aus ...

VB for Applications
Dateinamen und Artikelanzahl in eine Datei ausgeben
gelöst Frage von HeiltorVB for Applications13 Kommentare

Hallo an alle! Ich bin hier neu, es ist mein erster Schrei nach Hilfe. Ich fange gerade an, VBA ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 1 TagWindows 107 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 1 TagSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 TagenInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
Frage von HelloWorldBatch & Shell18 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...

Windows Server
Ping auf einen bestimmten Server nicht möglich
gelöst Frage von a.thierWindows Server7 Kommentare

Hallo, ich habe folgendes Problem. srv-dc1: Ping srv-nav > geht Ping srv-exchange > geht nicht srv-exchange: Ping srv-dc1 > ...

Windows 10
Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App
Tipp von kgbornWindows 107 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...