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 Mehrstufige String-Suche durch Batchdatei ?

Mitglied: V-Twin-1000

V-Twin-1000 (Level 1) - Jetzt verbinden

12.02.2007, aktualisiert 16.02.2007, 4232 Aufrufe, 6 Kommentare

Hallo allerseits,

ich möchte das unten stehende Batch von biber auf "mehrere Strings in einer Zeile suchen" erweitern.

Zu Fuß über Zwischen-Dateien hat das geklappt
z.B.
1.Step wordfind c:\xyz\*.* "String1" > c:\temp\string1.txt
2.Step wordfind c:\temp\string2.txt "String2" > c:\temp\string2.txt
2.Step wordfind c:\temp\string3.txt "String3" > c:\temp\string3.txt
usw.

Wie kann ich das in das vorhande Batch integrieren ?



::-- snipp Wordfind.bat
:: einfacher Batchdreizeiler zum Suchen eines Strings in Dateien.
:: Usage: Batch irgendwo in den Pfad stellen.
:: Aufruf: Wordfind [Dateimaske] [Suchwort]
:: -Beispiel: Wordfind d:\temp\*.txt "biber"
:: !! Skizze: ohne Parameterprüfung, Help, etc.
@Echo off
If Not [%1]==[___] (%0 ___ %1|find %2) & goto :eof
Setlocal EnableDelayedExpansion
for %%i in (%2) do (
Set /a "Line=10000"
For /F "delims=" %%a In (%%i) Do (
Set /a "Line=!line! +1"
Set cl=!line:~-3!
echo [%%i:!cl!] %%a
))
::-- snapp Wordfind.bat
Mitglied: AxelHahn
12.02.2007 um 14:41 Uhr
Hallo,

wenn du mit UND Verknüpfung suchen willst, dann Pipe alles hintereinander:

type [Dateiname] | findstr "begriff1" | findstr "Begriff2" (... usw. ...)

Bei Suche mit ODER trenne deine Begriffe mit Leerzeichen

type [Dateiname] | findstr "begriff1 Begriff2 (... usw. ...)"

oder verwende eine Textdatei mit Suchbegriffen (je Zeile einer) - in findstr ist es Parameter G:/[Dateiname].


Ggf. helfen auch reguläre Suchmuster, um aus deinen Suchbegriffen ben nur einen Suchbegriff zu machen (das erzwingt aber eine Reihenfolge der Suchbegriffe), z.B.

type [Dateiname] | findstr "Begriff1.*Begriff2(... usw. ...)"



Viele Grüsse
-= Axel =-
Bitte warten ..
Mitglied: V-Twin-1000
13.02.2007 um 09:54 Uhr
Hallo Axel,

das mit "findstr" geht ganz gut. Jetzt möchte das Batch noch umbauen das bis zu 4
suchstrings eingegeben werden können. Das funktioniert leider nicht, aber warum ?

So habe ich es aufgebaut:

:: einfacher Batchdreizeiler zum Suchen eines Strings in Dateien.
:: Usage: Batch irgendwo in den Pfad stellen.
:: Aufruf: Wordfind [Dateimaske] [Suchwort]
:: -Beispiel: Wordfind d:\temp\*.txt "biber" "schlotter" "Zitter" "hurz"
@Echo off
:s4
ECHO s4
IF [%5] == [___] goto :s3
If Not [%1]==[___] (%0 ___ %1|findstr "%2" |findstr "%3" |findstr "%4" |findstr "%5") & goto :eof
goto :search
:s3
ECHO s3
IF [%4] == [___] goto :s2
If Not [%1]==[___] (%0 ___ %1|findstr "%2" |findstr "%3" |findstr "%4") & goto :eof
goto :search
:s2
ECHO s2
IF [%3] == [___] goto :s1
If Not [%1]==[___] (%0 ___ %1|findstr "%2" |findstr "%3" ) & goto :eof
goto :search
:s1
ECHO s1
IF [%2] == [___] goto :eof
If Not [%1]==[___] (%0 ___ %1|findstr "%2" ) & goto :eof
:search
ECHO search
Setlocal EnableDelayedExpansion
for %%i in (%2) do (
Set /a "Line=10000"
For /F "delims=" %%a In (%%i) Do (
Set /a "Line=!line! +1"
Set cl=!line:~-3!
echo [%%i:!cl!] %%a
))
Bitte warten ..
Mitglied: Biber
13.02.2007 um 10:10 Uhr
Moin V-Twin-1000,
-in Bearbeitung--
Bitte warten ..
Mitglied: Biber
14.02.2007 um 21:58 Uhr
Soooooooo, V-Twin-1000,

hat einen Moment länger gedauert.
Aber jetzt habe ich wenigstens eine Alternative für Dich ...

Vorschlag.
01.
:: ---- snipp WordsInOneLine.bat Biber 2007 
02.
@echo off & setlocal 
03.
If [%2]==[] (echo Syntax: %~n0 ^<FileMask^> ^<searchStr1 [..searchStrN]^>) && goto :eof 
04.
Set "filemask=%~1" & set "SearchStr1=%~2" 
05.
Shift & Shift 
06.
For %%i in (%1 %2 %3 %4 %5 %6 %7 %8 %9) do call :addFilter "%%~i" 
07.
set "allfilter=findstr /n /i "%searchstr1%" "%filemask%" %NextFilter%" 
08.
Set allfilter=%allfilter:@@@=^^^|% 
09.
for /f "delims=" %%i in ('%Allfilter%') do echo %%i 
10.
goto :eof 
11.
:AddFilter 
12.
Set "NextFilter=%nextfilter%@@@findstr /i %1"
In Aktion mit unterschiedlicher Parameteranzahl:
01.
>WordsInOneLine /? 
02.
Syntax: WordsInOneLine <FileMask> <searchStr1 [..searchStrN]> 
03.
(= 8:54:15  D:\temp=) 
04.
>type f:\temp\ziffern.txt 
05.
eins zwei drei vier fünf sechs sieben acht neun sieben acht neun 
06.
sieben acht neun zehn elf drei vier fünf drei vier fünf 
07.
zwölf dreizehn sieben acht neun sieben acht neun 
08.
sieben acht neun sieben acht neun drei vier fünf 
09.
drei vier fünf drei vier fünf drei vier fünf drei vier fünf 
10.
eins zwei drei vier eins zwei drei vier eins zwei drei vier 
11.
zehn elf drei vier zehn elf drei vier zehn elf drei vier 
12.
(= 8:54:58  D:\temp=) 
13.
>wordsInOneLine f:\temp\zi*.* vier 
14.
f:\temp\Ziffern.txt:1:eins zwei drei vier fünf sechs sieben acht neun sieben acht neun 
15.
f:\temp\Ziffern.txt:2:sieben acht neun zehn elf drei vier fünf drei vier fünf 
16.
f:\temp\Ziffern.txt:4:sieben acht neun sieben acht neun drei vier fünf 
17.
f:\temp\Ziffern.txt:5:drei vier fünf drei vier fünf drei vier fünf drei vier fünf 
18.
f:\temp\Ziffern.txt:6:eins zwei drei vier eins zwei drei vier eins zwei drei vier 
19.
f:\temp\Ziffern.txt:7:zehn elf drei vier zehn elf drei vier zehn elf drei vier 
20.
 
21.
(= 8:55:14  D:\temp=) 
22.
>wordsInOneLine f:\temp\zi*.* vier fünf 
23.
f:\temp\Ziffern.txt:1:eins zwei drei vier fünf sechs sieben acht neun sieben acht neun 
24.
f:\temp\Ziffern.txt:2:sieben acht neun zehn elf drei vier fünf drei vier fünf 
25.
f:\temp\Ziffern.txt:4:sieben acht neun sieben acht neun drei vier fünf 
26.
f:\temp\Ziffern.txt:5:drei vier fünf drei vier fünf drei vier fünf drei vier fünf 
27.
 
28.
(= 8:55:19  D:\temp=) 
29.
>wordsInOneLine f:\temp\zi*.* vier fünf acht 
30.
f:\temp\Ziffern.txt:1:eins zwei drei vier fünf sechs sieben acht neun sieben acht neun 
31.
f:\temp\Ziffern.txt:2:sieben acht neun zehn elf drei vier fünf drei vier fünf 
32.
f:\temp\Ziffern.txt:4:sieben acht neun sieben acht neun drei vier fünf 
33.
 
34.
(= 8:55:24  D:\temp=) 
35.
>wordsInOneLine f:\temp\zi*.* vier fünf acht sieben 
36.
f:\temp\Ziffern.txt:1:eins zwei drei vier fünf sechs sieben acht neun sieben acht neun 
37.
f:\temp\Ziffern.txt:2:sieben acht neun zehn elf drei vier fünf drei vier fünf 
38.
f:\temp\Ziffern.txt:4:sieben acht neun sieben acht neun drei vier fünf 
39.
 
40.
(= 8:55:29  D:\temp=) 
41.
>wordsInOneLine f:\temp\zi*.* vier fünf acht sieben elf 
42.
f:\temp\Ziffern.txt:2:sieben acht neun zehn elf drei vier fünf drei vier fünf 
43.
 
44.
(= 8:55:32  D:\temp=) 
45.
>wordsInOneLine f:\temp\zi*.* vier fünf acht sieben zehn 
46.
f:\temp\Ziffern.txt:2:sieben acht neun zehn elf drei vier fünf drei vier fünf
Ich denke, der ist flexibel genug und ich hab ihn so lang gelassen, dass er noch lesbar bleibt.

Gruss
Biber

[Edit 15.2.2007 Demo-Beispiel ausgetauscht]
Bitte warten ..
Mitglied: V-Twin-1000
16.02.2007 um 12:08 Uhr
Hallo Biber,

funktioniert einwandfrei. Danke !

Gruß
V-Twin-1000
Bitte warten ..
Mitglied: Biber
16.02.2007 um 13:59 Uhr
Freut mich, V-Twin-1000,

kannst Du den Beitrag dann "Editieren" und auf "Erledigt" setzen bitte?

Ich habe unter "Windows" weder mehr Plan noch mehr Rechte als jeder andere und kann es daher nicht selbst tun.

Schönes Wochenende
Biber

[Edit] Beitrag wurde von "Windows" nach "Batch & Shell" verschoben inzwischen. [/Edit]
Bitte warten ..
Ähnliche Inhalte
Microsoft

Batchdatei: Dateien nach String durchsuchen, Dateinamen in .txt speichern

gelöst Frage von elcheffe123Microsoft22 Kommentare

Ahoi! Der Titel sagt eigentlich schon alles. Ich möchte eine Batchdatei schreiben, die im aktuellen Ordner( unbekannte anzahl an ...

Batch & Shell

Powershell String Suchen mit Wildcard und Ersetzen

gelöst Frage von herrmanndominicBatch & Shell6 Kommentare

Hallo zusammen, ich bräuchte Unterstützung bei einem Powershell Script. Ich habe ein Java Rollout per GPO über ein PowerShell ...

Perl

In Textdatei nach String suchen und diesen als Variable weiterverarbeiten

gelöst Frage von hokoPerl4 Kommentare

Hallo, Ich möchte in einem Pelrscript eine Textdatei nach einem String durchsuchen und diesen dann weiterverarbeiten. Der zu suchende ...

Backup

Online-Dateiablage für Verein, mit mehrstufiger Sicherung?

gelöst Frage von Demig0dBackup11 Kommentare

Hallo Admins, seit dem Jahresbeginn bin ich beauftragt, mich um die Computerausstattung in fünf Kindertagesstätten zu kümmern. Dabei geht ...

Neue Wissensbeiträge
Windows Server
DP mit Benutzerdatenträger und VDS-SAN-policy
Tipp von lcer00 vor 18 StundenWindows Server

Hallo zusammen, ich habe gerade einen halben Tag mit Recherche zu dem Thema hinter mir und endlich ein Ergebnis. ...

Internet

Europa baut Zensurinfrastruktur auf: EU-Parlament stimmt für Upload-Filter, Leistungsschutzrecht und gegen KI-Forschung

Information von Frank vor 3 TagenInternet10 Kommentare

Eine sehr schlechte Entscheidungen für die Zukunft Europas ist gefallen: Der Rechtsausschuss im EU-Parlament stimmte heute morgen in einer ...

Windows 10

Mikrofon von Headset geht nach Update auf Windows 10 1803 nicht mehr

Tipp von Deepsys vor 6 TagenWindows 102 Kommentare

Ich verwende ein Plantronics Headset das per USB mit dem Windows 10 PC verbunden ist. Damit kann ich auch ...

Video & Streaming

Ruckelfreies Fernsehen auf Smartphone oder Tablet - in SD oder gar HD - Eine Alternative zum Fritz DVB-C Receiver

Anleitung von power-user vor 6 TagenVideo & Streaming11 Kommentare

Wer kennt das nicht: Man möchte gemütlich auf dem Balkon sitzen und vielleicht grillen und dabei das WM-Spiel gucken ...

Heiß diskutierte Inhalte
Switche und Hubs
VPN Router empfehlung
Frage von mstSwitche und Hubs13 Kommentare

Moin Leute ich hab mal eine Frage an die VPN und Netzwerkprofis unter euch. Folgendes Szenario, ich habe einen ...

LAN, WAN, Wireless
Sophos UTM 110 120 in Betrieb nehmen und IP Adresse am Cisco Switch herausfinden
Frage von KabuntelLAN, WAN, Wireless13 Kommentare

Hallo, ich mache in Rahmen meiner Umschulung zum Fachinformatiker - Systemintegration ein Praktikum. Gestern hat mir mein Chef gleich ...

Hardware
Neue Hardware für meine pfSense - APU2 apu4b4?
Frage von jokru1Hardware8 Kommentare

Hallo zusammen, ich betreibe aktuell meine pfSense auf einer APU2-Hardware (3 NICs, 4GB RAM) ohne AES-NI-Unterstützung. Diese möchte ich ...

LAN, WAN, Wireless
Netzwerkverkehr bei WLAN-Repeater immer über Router?
Frage von ahussainLAN, WAN, Wireless8 Kommentare

Hallo, beim Einsatz eines WLAN-Repeaters baut dieser ja ein eigenes Funknetz auf. Mich würde interessieren, ob der Netzwerkverkehr immer ...