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, 4226 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 ...

Batch & Shell

Datei in Ordner mit Batchdatei suchen und weiterverarbeiten

gelöst Frage von MichaelWiggenBatch & Shell2 Kommentare

Hallo zusammen, ich wurde mit der Thematik Batch Dateien zu erstellen ins Kalte Wasser geworfen. Es geht um folgendes: ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 1 TagWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 2 TagenAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 2 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 3 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Router & Routing
WRT keine Verbindung zum Web Interface
Frage von ILeonardRouter & Routing15 Kommentare

Hallo, Ich habe einen TP-Link WR841n mit wrt geflasht, das Problem ist ich kann mich mit 192.168.1.1 nicht verbinden. ...

Windows Server
Standortvernetzung zu einem Strato VServer (Windows)
Frage von matzefratze81Windows Server10 Kommentare

Moin, ich komme aus einem Enterprise-Umfeld und habe den Fehler gemacht, dass ich mich auf ein kleines Unternehmen eingelassen ...

Grafikkarten & Monitore
4k EIZO Monitor, Fernseher und Splitter
Frage von LerxxeyGrafikkarten & Monitore9 Kommentare

Hallo Zusammen, vielleicht könnt ihr mir bei einem Problem helfen wo ich einfach nicht mehr weiterkomme Und zwar haben ...

Humor (lol)
Nerd Zeitschrift gesucht
Frage von 2SeitenHumor (lol)6 Kommentare

Hey Zusammen, Ich suche eine Zeitschrift bei der es ums technische Basteln geht. Pc zusammenschrauben, Arduino Projekte, Server Tipps ...