Jump to content

Batch Problem - Dateien aus Liste bearbeiten


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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 ...

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...