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

Suchen von Strings mit von Batch files

Frage Entwicklung Batch & Shell

Mitglied: sevi130888

sevi130888 (Level 1) - Jetzt verbinden

09.08.2008, aktualisiert 12.08.2008, 4617 Aufrufe, 6 Kommentare

Hallo,

habe folgendes Problem:

habe 2 log files.

In der ersten stehen Uhrzeiten:


00:00:00
00:01:00
00:02:00
00:03:00
....
23:59:00

in dem 2. Log file stehen diese Urzeit mit anderen Infos öfters hintereinander.

Nun möcht ich gern ein Batch file, das mir zu jeder Uhrzeit im 1. file die Anzahl der Zeilen mit dieser Zeit im 2. file anzeigt!
Habe das schon irgendwie mit dem "find" Befehl probiert, doch der lässt mich keine Variablen anstatt des Strings angeben!
Hat irgendwer eine Idee?

Danke!
Mitglied: bastla
09.08.2008 um 13:24 Uhr
Hallo sevi130888 und willkommen im Forum!

Versuch es so:
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Zeiten=D:\Zeiten.txt" 
03.
set "Log=D:\LogFile.txt" 
04.
 
05.
for /f "usebackq delims=" %%i in ("%Zeiten%") do ( 
06.
	set /a Anzahl=0 
07.
	for /f %%a in ('findstr /c:"%%i" "%Log%"') do set /a Anzahl+=1 
08.
	echo %%i: !Anzahl! 
09.
)
Grüße
bastla
Bitte warten ..
Mitglied: sevi130888
09.08.2008 um 16:05 Uhr
danke hat super funktioniert... wenn du lust und zeit hast könntest du mit diesen syntax noch ein wenig erklären! ;)

Danke!!!!
Bitte warten ..
Mitglied: bastla
09.08.2008 um 21:20 Uhr
Hallo sevi130888!

Der Ordnung halber vorweg: Die Onlinehilfe kannst Du jeweils mit "Befehl /?" (also etwa "for /?") von der Kommandozeile aufrufen ...

01.
@echo off & setlocal enabledelayedexpansion
Die "verzögerte Variablenauflösung" ("delayedExpansion") wird benötigt, um innerhalb der Schleife auf den jeweils aktuellen Wert der Variablen %Anzahl% (dann geschrieben als !Anzahl!) zugreifen zu können.

01.
set "Zeiten=D:\Zeiten.txt" 
02.
set "Log=D:\LogFile.txt"
No comment

01.
for /f "usebackq delims=" %%i in ("%Zeiten%") do (
Schleife, um alle Zeilen der Zeiten-Tabelle einzeln in der Variable %%i zu erhalten.
"usebackq" erlaubt es, den Dateinamen/-pfad (in der Variablen %Zeiten%) unter Anführungszeichen angeben zu können - nur für den Fall, dass dieser bei Dir Leerzeichen enthielte.
"delims=" legt fest, dass es keine Trennzeichen (zur Aufteilung der Zeile in einzelne "tokens") gibt - daher wird %%i jeweils die gesamte Zeile enthalten.

01.
set /a Anzahl=0
Rücksetzen des Zählers für Fundstellen (das "/a" ist eigentlich nicht nötig - ich verwende es, um sozusagen den "Datentyp" der Variablen - "numerisch" - anzuzeigen).

01.
for /f %%a in ('findstr /c:"%%i" "%Log%"') do set /a Anzahl+=1
Schleife über alle Zeilen, welche %%i (die vorhin ausgelesene Uhrzeit) enthalten - verantwortlich dafür, dass nur "passende" Zeilen in der Schleife verwendet werden, ist "findstr" mit dem Suchbegriff "Uhrzeit" (%%i).
Da die Daten selbst nicht weiter interessieren, muss bei der "for"-Schleife weder für "tokens" noch für "delims" eine Einstellung vorgenommen werden.
Die Schleife wird für jede gefundene Zeile durchlaufen - daher kann mit "set /a Anzahl+=1" (als Kurzfassung für "set /a Anzahl=%Anzahl%+1", oder hier eigentlich "set /a Anzahl=!Anzahl!+1") jeweils der "Zählerstand" in der Variablen %Anzahl% (bzw !Anzahl!) erhöht werden. Hier ist "/a" wichtig, damit eine arithmetische Operation vorgenommen wird.

01.
echo %%i: !Anzahl! 
02.
)
Ausgabe der Uhrzeit und der Anzahl der Fundstellen und Ende der Schleife - um bereits innerhalb der Schleife den jeweils aktuellen Wert der Variablen %Anzahl% lesen (ausgeben) zu können, wird die oben angesprochene "verzögerte Variablenauflösung" benötigt, und deshalb auch die geänderte Schreibweise !Anzahl!.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
11.08.2008 um 07:08 Uhr
Moin bastla,

ich hätte sehr gerne Deinen Schnipsel und Deinen erläuternden Kommentar noch einmal im Stück als Tutorial im Bereich "Batch & Shell" mit der (sinngemäßen) Überschrift "Beispielbatch: Zusammenfassung von Logfile-Ereignissen nach Zeiten" (oder so ähnlich).

Lässt sich das machen?

Wäre doch schade, wenn dieser Beitrag hier unterginge...

Grüße
Biber
[Edit] Tutorial siehe hier. Dickes Danke an bastla! [/Edit]
Bitte warten ..
Mitglied: sevi130888
11.08.2008 um 07:20 Uhr
DANKE!
Sehr schön erklärt!

lg
Bitte warten ..
Mitglied: bastla
12.08.2008 um 01:07 Uhr
@Biber

Ließ sich machen ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch-Script zum Auslesen eines bestimmten Strings aus bestimmter Zeile aus Text-File
gelöst Frage von aes0p.Batch & Shell13 Kommentare

Hallo! Ich möchte gern via Batch-Script einen String aus einer Text-Datei auslesen. Die Textdatei hat folgenden Inhalt: vssadmin 1.1 ...

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

Cloud-Dienste
Suche Konstrukt zum File- Hosting
gelöst Frage von meetdaleetCloud-Dienste5 Kommentare

Werte Community, ich entschuldige mich vorweg schon für den Umstand, dass meine Frage (uU.) bereits an anderer Stelle gestellt ...

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

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 4 StundenViren und Trojaner

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 8 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

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

Information von Penny.Cilin vor 3 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 4 TagenWebbrowser8 Kommentare

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

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

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

Cloud-Dienste
PIM als SaaS Nutzungsgebühr
Frage von vanTastCloud-Dienste8 Kommentare

Moin, wir haben uns ein PIM (Product Information Management) nach unseren Ansprüchen für viel Geld als SaaS-Lösung bauen lassen. ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware7 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...