Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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, 7132 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
gelöst Dateinamen mittels findstr aus einer TXT auslesehen (14)

Frage von Diamond72 zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateinamen auslesen und in einer Schleife benutzen (12)

Frage von TeholBeddict zum Thema Batch & Shell ...

Batch & Shell
gelöst String in TXT suchen, überprüfen und wenn noetig aendern ? (4)

Frage von buliwyf zum Thema Batch & Shell ...

Batch & Shell
gelöst Mal eine neue Art von Abfrage mit findstr (8)

Frage von DaTobsn zum Thema Batch & Shell ...

Neue Wissensbeiträge
Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Monitoring
Netzwerk-Monitoring Software (18)

Frage von Ghost108 zum Thema Monitoring ...

Windows 10
Seekrank bei Windows 10 (18)

Frage von zauberer123 zum Thema Windows 10 ...

Windows 10
Windows 10 Fall Creators Update Fehler (13)

Frage von ZeroCool23 zum Thema Windows 10 ...

Router & Routing
gelöst Getrenntes Routing bei VoIP und Daten (12)

Frage von Hobbystern zum Thema Router & Routing ...