fragemeister
Goto Top

Bestimmte Anzahl von Dateien verschieben

Hallo,

ich habe einen Ordner mit vielen Dateien (unterschiedlichste Namen) und möchte jetzt eine bestimmte Anzahl von Dateien in andere Ordner verschieben.

Ein Ordner hat z.B. 100 verschiedene Dateien, dann sollten jeweils 20 Dateien in Ordner1, weitere 20 in Ordner2, u.s.w. verschoben werden.

Die Auswahl der Dateien kann nach Namen oder nach Erstellungsdatum erfolgen.

Der Hintergrund hierzu ist, dass ich ein Programm zur Weiterverarbeitung der Dateien verwende, das nur eine bestimmte Menge an Dateien laden kann.

Kann man die Aufteilung der Dateien mit einer Batchdatei realisieren?

Für Lösungen oder Lösungsansätze wäre ich dankbar.


Viele Grüße und schonmals Danke,

Fragemeister

Content-Key: 38410

Url: https://administrator.de/contentid/38410

Printed on: April 20, 2024 at 03:04 o'clock

Member: Biber
Biber Aug 21, 2006 at 11:51:40 (UTC)
Goto Top
Moin Fragemeister,

gibt verschiedene Ansätze, die Dich via Batch zu einer Lösung führen könnten...

Einer wäre skizziert:
@echo off & setlocal
Set /a cnt=0
For /f %%i in ('dir /b /a:d /o:d x:\meinQuellverzeichnis\*.*') do call: DivideEtImpera %%i  
goto :eof

:DivideEtImpera
Set /a cnt=%cnt% +1
If %cnt% GEQ 100 goto :eof
if %cnt% GEQ 80 (( copy "x:\meinQuellverzeichnis\%1" y:\ordner80ff\*.*) && goto :eof)  
if %cnt% GEQ 60 (( copy "x:\meinQuellverzeichnis\%1" y:\ordner60ff\*.*) && goto :eof)  
if %cnt% GEQ 40 (( copy "x:\meinQuellverzeichnis\%1" y:\ordner40ff\*.*) && goto :eof)  
if %cnt% GEQ 20 (( copy "x:\meinQuellverzeichnis\%1" y:\ordner20ff\*.*) && goto :eof)  
copy "x:\meinQuellverzeichnis\%1" y:\ordner0ff\*.* && goto :eof  

Geht sicherlich auch eleganter und Du kannst natürlich auch die Anzahl der zu kopierenden Dateien als Parameter übergeben und untern im CALL-Block statt [20] berechnen [1*%AnzJeOrdner%], statt [40] berechnen [2*%AnzJeOrdner%]

Über die DIR-Parameter /o:d bzw /o:n kannst Du die Sortierreihenfolge nach Datum, Name oder irgenwas festlegen.

HTH
Biber