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

findstr - zeilennummern hinter dateinamen - bei Such-String-Übereinstimmung

Frage Entwicklung Batch & Shell

Mitglied: Seltermann

Seltermann (Level 1) - Jetzt verbinden

08.08.2007, aktualisiert 09.08.2007, 7141 Aufrufe, 2 Kommentare

Hallo ihr fleißigen Batcher,

wie der Titel schon verrät geht es darum einen String-Vorkommen in mehreren Dateien zu suchen. Die Dateien sollen aufgelistet werden und hinter jeder Datei jeweils die Zeilennummer; mit Semikolons getrennt; dargestellt werden. Das Ergebnis wird in eine Datei geschrieben.

Hier mein fehlerhaftes Skript:

@ECHO off

SET FILE=#findSTR.txt
SET STR=fmtmemo
SET TMP=temp.txt

set /A z=0
ECHO. > %FILE%
REM findstr /i /m "%STR%" *.dfm > %FILE%
findstr /i /n "%STR%" *.dfm|find /i "dfm:" && (set /A z = "z+1") || (ECHO %z% >> %FILE% && SET /A z=0)

set /A z=0
FOR /F %%A IN (%FILE%) DO (set /A z = "z+1")

COPY /A %FILE% %TMP%

ECHO %z% Dateien enthalten den String: %STR%> %FILE%

IF %z% == 0 GOTO end

ECHO.>>%FILE%
ECHO.>>%FILE%

COPY /A %FILE% + %TMP%
DEL %TMP%

:end

Die auskommentierte Zeile mit REM ist die erste Version die einwandfrei funktioniert um die Dateien aufzulisten die das String-Vorkommen aufweisen.
Da ich das nicht hin bekomme mit den Zeilennummern hinter dem Dateinamen, habe ich versucht die Anzahl der Vorkommen in der Datei zu zählen, was auch nicht richtig funktioniert.

Warum ich das benötige:
Mein Delphi-Programm umfasst über 100 Formulare und ich muss gezielte Änderungen vornehmen. Ohne Auflistung der Dateien müsste ich jede Datei öffnen und selbst nach der Bearbeitung wüsste ich dann nicht, ob die notwendigen Änderungen vollständig sind.

Zusammenfassung:
- Dateien auflisten mit dem String-Vorkommen
- hinter jedem Dateinamen die Zeilennummern auflisten mit Semikolons getrennt (Bsp.: dialogHelp.dfm 20;32;80)

Wenn ihr eine Lösung oder einen Tip parat habt dann postet bitte.
Vielen Dank schon im voraus.
Mitglied: bastla
08.08.2007 um 19:51 Uhr
Hallo Seltermann und willkommen im Forum!

Versuch es mit 2 Schleifen:
01.
@echo off & setlocal 
02.
set "FILE=#findSTR.txt" 
03.
set "STR=fmtmemo" 
04.
 
05.
if exist "%FILE%" del "%FILE%" 
06.
set /a Anzahl=0 
07.
for /f "delims=" %%i in ('findstr /i /m "%STR%" *.dfm') do call :ProcessFile "%%i" 
08.
echo Dateien: %Anzahl% 
09.
type "%FILE%" 
10.
goto :eof 
11.
 
12.
:ProcessFile 
13.
set /a Anzahl+=1 
14.
set "Line=%~1 " 
15.
set Flag= 
16.
for /f "delims=:" %%n in ('type %1^|findstr /n .^|findstr /i "%STR%"') do call :ProcessLine %%n 
17.
(echo %Line%)>>"%FILE%" 
18.
goto :eof 
19.
 
20.
:ProcessLine 
21.
if defined Flag set "Line=%Line%;" 
22.
set Flag=True 
23.
set "Line=%Line%%1" 
24.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: Seltermann
09.08.2007 um 09:26 Uhr
Vielen Dank bastla.

Das Skript funktioniert einwandfrei.

Danke

Da das Problem gelöst ist, werde ich morgen den Beitrag schließen.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Dateinamen mittels findstr aus einer TXT auslesehen
gelöst Frage von Diamond72Batch & Shell14 Kommentare

Guten Tag zusammen, ich möchte gerne mit einer Batch mehrere Dateinamen z.B. Frank.pdf Jutta.pdf Ingold.pdf Käthe.pdf welche in einem ...

Batch & Shell
TXT Nach String durchsuchen und Zeilennummer als errorlevel schreiben.
gelöst Frage von Malli88Batch & Shell9 Kommentare

Hallo zusammen. Ich habe die hoheitliche Aufgabe bekommen eine known errordatenbank zu schreiben. Hier die Ausgangssituation: Wir haben mehrer ...

Batch & Shell
Per Findstr, Suchen nach dies bzw. jenes, sonst sonstiges
gelöst Frage von batchnewbieBatch & Shell5 Kommentare

Hallo, ich stehe irgendwie auf dem Schlauch und benötige eure Hilfe. Ich habe drei unterschiedliche Dateiname-Muster einmal welche mit ...

Batch & Shell
Dateinamen mit gleichem String in einen Ordner schieben, den Ordner nach String benennen
Frage von medi2008Batch & Shell12 Kommentare

Einen Gruss an alle Forumser ! Nach vergeblicher Suche wende ich mich an euch mit meiner Frage. Auf einem ...

Neue Wissensbeiträge
DSL, VDSL

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

Information von Lochkartenstanzer vor 2 StundenDSL, VDSL1 Kommentar

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

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 3 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 6 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement17 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...