andrehh
Goto Top

Skript zum verschieben von Dateien in 250er Blöcken

Hallo Zusammen,

ich stehe gerade vor einer Aufgabe die ich gerne per Skript erledigen würde.

Ich habe 6 Ordner mit jeweils ca. 10.000 Dateien. Ich möchte nun das jeweils 250 Dokumente in noch nicht vorhandene Unterordner verschoben werden.
Es ist für die nachfolgende Applikation sehr wichtig das maximal 250 Dokumente in diesen Ordnern liegen.

Folgenden Weg müsste also solch ein Skript beschreiten:
1. Einstieg in den ersten der sechs Ordner
2. Anzahl vorhandener Dateien ermitteln
3. Unterordner "1" erstellen und 250 Dokumente dorthin verschieben
4. Unterordner "2" erstellen und 250 Dokumente dorthin verschieben
..
99. Unterordner "97" erstellen und die noch übrig gebliebenen Dokumente dorthin verschieben.

Vielleicht hat ja jemand von euch Idee wie man diese Geschichte elegant lösen könnte. Vielen Dank face-smile

Content-Key: 145334

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

Printed on: April 24, 2024 at 02:04 o'clock

Mitglied: 77559
77559 Jun 21, 2010 at 18:29:26 (UTC)
Goto Top
Hallo andrehh,

die Dateien on the fly zählen und dann einfach den Zähler durch 250 teilen + 1 und du hast den gewünschten Ordner.

Hier eine Batch die alle Dateien im aktuellen Ordner in entsprechende Unterordner verschiebt.

Diese Version erzeigt aber führende Nullen damit es mit dem Sortieren besser klappt.
:: Split-X.cmd
@Echo off & Setlocal
Set X=250
For /F "tokens=1,* delims=" %%A in (  
  'Dir /B/A-D .^|find /N /V "#+#"'  
    ) Do Call :ProcessFile %%A "%%B"  
Goto :Eof
:ProcessFile
Set /A "Ordner=(%1-1) / X + 1001, LfdNum=(%1-1)  %% X + 1001"  
Set Ordner=%Ordner:~-3%
Set LfdNum=%LfdNum:~-3%
Echo %LfdNum% %Ordner% %2
:: If Not Exist %Ordner% MD %Ordner%
:: Move %2 %Ordner%\
Es wir nur angezeigt, zum "scharfmachen" die Doppelpunkte in den letzten beiden Zeilen entfernen
Wenn die Ordnernur 2-Stellige Nummern haben sollen in Zeile 10 die -3 in -2 ändern.

Gruß
LotPings
Member: andrehh
andrehh Jun 22, 2010 at 06:22:28 (UTC)
Goto Top
Sehr geil face-smile

Vielen vielen Dank dafür face-smile