Hallo zusammen, ich benötige Hilfe für ein batch-script für folgende Aufgabe.
Ich habe viele Log-files (txt) die in einem Verzeichnis mit Unterverzeichnissen liegen. Für eine Analyse benötige ich aber nur die log-files in denen ein bestimmter Text vorkommt.
Dazu möchte ich all jene Files die den Text enthalten aus allen Unterverzeichnissen in ein neues Verzeichnis kopieren.
Beispiel: c:\temp\1 ist das Quellverzeichnis mit unterordnern (c:\temp\1\1 , c:\temp\1\2 ; c:\temp\1\4 …). Darin liegen verschiedene Textfiles die zum Teil den Text „Freitag“ enthalten.
Zielverzeichnis ist c:\temp\2 - hierhin sollen alle Dateien kopiert werden wo der Text „Freitag“ vorkommt.
Ich habe bereits versucht einzelne code-schnipsel zusammenzufügen - leider ohne Erfolg!Ich hoffe es kann mir hier jemand helfen.
Warum muss das in einem batch-file sein? Was spricht gegen eine einfache Suche im Explorer, alle gefundenen Dateien markieren und irgendwoandershin kopieren?
Sowas geht in 10s je Suchwort und auch über mehrere Verzeichnisebenen ohne Friemelei.
Günther
Stern? Bitte gern.
http://stackoverflow.com/questions/21315643/search-t…
da steht ne lösung , die auch noch protokolliert wo was gefunden wurde .
Hallo Günther,
habe ich versucht. Nur steigt hier Windows leider aus - es geht hier um mehrere 10000 Dateien die zu durchsuchen sind. Das Ergebnis in Windows ist immer ein anderes weshalb man sich nicht darauf verlassen kann. - leider-
Ich habe mal etwas ähnliches mit ca. 8000 Dateien gemacht, weiß nun allerdings nicht, ob es in diesem Fall funktioniert.
Ein Makro aufnehmen, z.B. mit Word.
Das ist jetzt keine direkt Lösungsmöglichkeit, nur ein Ansatzpunkt
Hm… Also eine einmalige Geschichte. Dann nimm ein leistungsfähigeres Tool, etwa den Total Commander. Dessen Suche ist zuverlässig, auch innerhalb von Dateien. Aber sowas braucht immer auch ein bisschen Geduld, schließlich muss der PC jede einzelne Datei vollständig lesen.
Günther
vielen Dank - das ist die Lösung nach der ich gesucht habe
Hi …
eigentlich ziemlich trivial.
Ich habe viele Log-files (txt) die in einem Verzeichnis mit
Unterverzeichnissen liegen.
Mal sehen ob ich das einfach mal so fehlerfrei hinbekomme:
@echo off
goto main
> check1file
type %1 | find "Freitag"
if errorlevel 1 goto :EOF
echo %1 ...
copy %1 "c:\temp\2"
goto :EOF
> main
for /r %%f in (c:\temp\1\*.log) do call :check1file "%%f"
Die Lösung wird allerdings sehr ineffizient. Aber wenns darauf nicht ankommt - es müsste eigentlich - Tippfehler vorbehalten - so passen wie ich es runtergetippt habe. Testen und ggf kleine Fehler korrigieren überlasse ich Dir.
Gruss Armin.