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 ?

Frage Entwicklung Batch & Shell

Mitglied: V-Twin-1000

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

12.02.2007, aktualisiert 16.02.2007, 4222 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
Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 2 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 3 TagenWebbrowser7 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Sicherheit

Teamviewer Sessions können gekapert werden - Update tw. verfügbar

Information von sabines vor 3 TagenSicherheit6 Kommentare

In bestimmten Konstellationen können Teamviewer Sessions gekapert werden, wahrscheinlich aber ein recht unwahrscheinliches Szenario. Da der Teamviewer gerne für ...

Digitiales Fernsehen

Apple TV: Amazon Prime App ist verfügbar

Information von Frank vor 4 TagenDigitiales Fernsehen4 Kommentare

Die Amazon Prime Video App kann ab sofort auf einem Apple TV ab der 3 Generation installiert werden. Einfach ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Windows Server
Server 2012 über Eingabeaufforderung devmgmt.msc geht nicht
gelöst Frage von achim222Windows Server9 Kommentare

Hallo, ich habe hier einen Server 2012 der im Reparaturmodus startet. Es liegt an einem falschen VirtIO Treiber für ...