michel0203 10 Geschrieben 30. Oktober 2005 Melden Teilen Geschrieben 30. Oktober 2005 Hi zusammen, ich habe folgendes vor. - Auf unterschiedlichen Partitionen (D,E,F,G) nach Dateien suchen, die ich vorher in einer Textdatei (blacklist.txt) definiert habe.(zB:Yeti*.*, Moorhu*.*, die üblichen Verdächtigen halt. Bin im Moment bei dem Befehl 'FOR', komme aber nicht weiter, weil ich es schon nicht hinbekomme, dass er mir zuerst die gefundenen Dateien loggt. Beispiel: --------------------------------------------------------------- @echo off set blacklist=d:\batches\blacklist.txt set blacklog=d:\batches\blacklog.txt FOR /f %%f IN (%blacklist%) DO dir ??? %%f > %blacklog% Hier soll er auf einer oder alle (?) der Partitionen die gefundenen Dateien listen und in meinen 'blacklog' schreiben. Ich möchte quasi erst einmal, dass er auf einer oder allen Partitionen nach den Dateien sucht, die in der ' blacklist' definiert sind. Dann soll er mir die gefundenen ins 'blacklog' schreiben. Dann soll er sie löschen. Am Ende soll es dann so aussehen, dass ich ein LOG habe, dass aussagt was gefunden und gelöscht wurde, aus Gründen der Nachvollziehung. Gruß Michel Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 30. Oktober 2005 Melden Teilen Geschrieben 30. Oktober 2005 Hallo, möglicherweise hilft http://www.bb-sys.de/bbshell.htm beim Programmieren der For-Schleife weiter. Viel Erfolg Edgar Zitieren Link zu diesem Kommentar
michel0203 10 Geschrieben 30. Oktober 2005 Autor Melden Teilen Geschrieben 30. Oktober 2005 Danke, komme/bin aber immer noch nicht weiter. Zitieren Link zu diesem Kommentar
maneich 10 Geschrieben 31. Oktober 2005 Melden Teilen Geschrieben 31. Oktober 2005 Hallo, probiere mal das: for /f %%e in (d:\batches\blacklist.txt) do call: such %%e :such for /f %%i in ('dir /s /b D:\' 'dir /s /b E:\' 'dir /s /b F:\' 'dir /s /b G:\') do find /i "%%1%">>d:\batches\blacklog.txt wenn er mehrere dir in der Klammer nicht annimt mußt du eben für jedes Laufwerk 1 for...('dir... ')... Zeile schreiben, das sollte auf jeden Fall Klappen. MfG maneich Zitieren Link zu diesem Kommentar
michel0203 10 Geschrieben 31. Oktober 2005 Autor Melden Teilen Geschrieben 31. Oktober 2005 Hi, ------------------------------------------------------------------------- @echo off set blacklist=d:\batches_scripte\blacklist.txt set blacklog=d:\batches_scripte\blacklog.txt for /f %%e in (%blacklist%) do call :such %%e :such for /f %%i in ('dir /s /q D:\') do find /I "%%1%" > %blacklog% ------------------------------------------------------------------------- Nach Starten der bat habe ich ne gehörige CPU-Last aber kein Ergebnis. gruß michel Zitieren Link zu diesem Kommentar
michel0203 10 Geschrieben 31. Oktober 2005 Autor Melden Teilen Geschrieben 31. Oktober 2005 So, der hier ist schön, ein Kollege war so frei mir ein wenig unter die ...... ------------------------------------------------------------------------------------ set blacklist=d:\batches_scripte\blacklist.txt set blacklog=d:\batches_scripte\blacklog.txt rem Ausgabe von Datum und Uhrzeit nach blacklog echo %DATE%, %TIME% > %blacklog% echo Dateien aus Blacklist werden gesucht > %blacklog% rem Durchsuche zeilenweise die blacklist, hier auf D for /f %%e in (%blacklist%) do dir d:\%%e /s /q >> %blacklog% ------------------------------------------------------------------------------------ Der funzt, danke bisher für die Ideen ... Zitieren Link zu diesem Kommentar
michel0203 10 Geschrieben 1. November 2005 Autor Melden Teilen Geschrieben 1. November 2005 Ich nochmal, nun, das funktioniert jetzt zwar, allerdings sehr langsam, weil er erst die eine, dann nie nächste usw. sucht (hintereinander).Wenn man bedenkt, dass er das auf einem Fileserver tun soll, der Unmengen an Daten enthält, stellt sich mir nun die Frage ob es eine Möglichkeit gibt auf einen Schlag nach all diesen in der blacklist definierten Kandidaten/Dateien zu suchen (gleichzeitig). Meine Programmierkenntnisse sind leider miserabel. Gruß Michel Zitieren Link zu diesem Kommentar
michel0203 10 Geschrieben 2. November 2005 Autor Melden Teilen Geschrieben 2. November 2005 Wollte nur nochmal ergänzend hinzufügen, dass mit einer weiteren Variante die Sache nun ganz ordentlich funzt.(Schneller) Wesentlicher Bestandteil ist er hier: ------------------------------------Ausschnit----------------------------------------- dir %drive% /s /b | findstr /I /G:%blacklist% >> %blacklog% ------------------------------------Ausschnit Ende----------------------------------- mfG Michel Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 2. November 2005 Melden Teilen Geschrieben 2. November 2005 Super, iwarum kommt man auf die einfachen Dinge oft erst später. Ich bin auch sehr auf die For-Schleife fixiert. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.