batch programm um Namen in der Datei zu suchen
Hallo Zusammen!!
Ich will eine batch datei schreiben,die soll in den Textdokumenten(Die Textdokumente sind alle in einem Ordner) nach bestimmten Namen suchen. Die Textdokumente, die den Namen enthalten, sollen entweder woanders hin kopiert oder markiert werden oder irgendwie auffallen.
LG Sarah
Ich will eine batch datei schreiben,die soll in den Textdokumenten(Die Textdokumente sind alle in einem Ordner) nach bestimmten Namen suchen. Die Textdokumente, die den Namen enthalten, sollen entweder woanders hin kopiert oder markiert werden oder irgendwie auffallen.
LG Sarah
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 50236
Url: https://administrator.de/forum/batch-programm-um-namen-in-der-datei-zu-suchen-50236.html
Ausgedruckt am: 16.02.2025 um 17:02 Uhr
9 Kommentare
Neuester Kommentar
Hi,
also du möchtest innhalb der einzelenen Dokumenten suchen?! Ja - Dann benutz mal diesen Batch:
Bei der Pfadangabe am Ende den "\" weglassen!! Ansonsten die Pfadanpassen.
dir_src: Dort liegen deine txt-Dateien
dir_des: Dort wird die entsprechende Datei hinkopiert, wenn die Zeichenfolge xxx vorhanden ist
string: Suchbegriff
Leider bin ich nicht zum testen gekommen!
Gruß
Dani
also du möchtest innhalb der einzelenen Dokumenten suchen?! Ja - Dann benutz mal diesen Batch:
@ECHO off
SET dir_src=C:\test\123
SET dir_des=C:\rrr
SET string=
FOR /f %%a IN ('DIR /b /s "%dir_src%"') DO (
FOR /f %%b IN('TYPE "%dir_src%\%%a" ^|FINSTR /i /m "%string%"') DO (
COPY "%dir_src%\%%b" "%dir_des%" /y
)
)
dir_src: Dort liegen deine txt-Dateien
dir_des: Dort wird die entsprechende Datei hinkopiert, wenn die Zeichenfolge xxx vorhanden ist
string: Suchbegriff
Leider bin ich nicht zum testen gekommen!
Gruß
Dani
Hi Sarah,
also ich habe es grad probiert und die Fehler beseitigt. Kl. Denkfehler waren drinne!
So sieht die Finalversion aus:
Viel Spaß....
Gruß
Dani
also ich habe es grad probiert und die Fehler beseitigt. Kl. Denkfehler waren drinne!
So sieht die Finalversion aus:
@ECHO off
SET dir_src=
SET dir_des=
SET string=
FOR /f "delims=" %%a IN ('DIR /b /s "%dir_src%"') DO (
FOR /f %%b IN ('TYPE "%%a" ^|FINDSTR /i "%string%"') DO (
COPY "%%a" "%dir_des%" /y
)
)
pause
Gruß
Dani
Hallo Sarah!
Und von mir noch eine etwas gestraffte Variante:
Anmerkungen:
IF ERRORLEVEL ist kein unmittelbares Pendant zu "On Error ...", sondern müsste nach jeder "zu überwachenden" Anweisung etwa so verwendet werden (siehe auch "if /?"):
Bei den "set"-Anweisungen habe ich zur Sicherheit Biber's Spezialsyntax verwendet (die Anführungszeichen stellen sicher, dass alle benötigten Leerstellen in die Variable übernommen werden - beim der von mir ergänzten Variable für den Dateityp sollte es keine geben). Bei Deinem "SET string= test" oben hattest Du übrigens ein (vermutlich ungeplantes) Leerzeichen vor "test".
"delims=" sorgt dafür, dass die Pfade der gefundenen Dateien vollständig in %%i gespeichert werden (einmal mehr die Leerstellen-Problematik).
"findstr /m" listet die Dateien, in denen der Suchtext enthalten ist, samt Pfadangabe auf, daher kann das Ergebnis (als %%i) gleich als Quelle für das Kopieren verwendet werden.
Grüße
bastla
[Edit] @Dani - Sorry, hatte nicht nochmal reingeschaut ... [/Edit]
Und von mir noch eine etwas gestraffte Variante:
@echo off & setlocal
set "dir_src=C:\Dokumente und Einstellungen\test\Desktop\Neuer Ordner"
set typ_src=*.txt
set "dir_des=C:\Dokumente und Einstellungen\test\Desktop\Neuer Ordner\kopierte Datein"
set "string=test"
for /f "delims=" %%i in ('findstr /i /m "%string%" "%dir_src%\%typ_src%"') do copy /y "%%i" "%dir_des%" || echo Fehler aufgetreten!
echo OK
IF ERRORLEVEL ist kein unmittelbares Pendant zu "On Error ...", sondern müsste nach jeder "zu überwachenden" Anweisung etwa so verwendet werden (siehe auch "if /?"):
copy ...
if errorlevel 1 goto :Fehler
"delims=" sorgt dafür, dass die Pfade der gefundenen Dateien vollständig in %%i gespeichert werden (einmal mehr die Leerstellen-Problematik).
"findstr /m" listet die Dateien, in denen der Suchtext enthalten ist, samt Pfadangabe auf, daher kann das Ergebnis (als %%i) gleich als Quelle für das Kopieren verwendet werden.
Grüße
bastla
[Edit] @Dani - Sorry, hatte nicht nochmal reingeschaut ... [/Edit]