2016-04-04 8 views

Antwort

0
@ECHO OFF 
SETLOCAL ENABLEDELAYEDEXPANSION 
SET "sourcedir=U:\sourcedir\t w o" 
SET "destdir=U:\destdir" 
SET /a destcount=0 
SET /a maxcount=5 
SET /a filecount=maxcount 
FOR /f "delims=" %%a IN (
'dir /b /a-d "%sourcedir%\*" ' 
) DO (
SET /a filecount +=1 
IF !filecount! geq %maxcount% (
    SET /a filecount=0 
    SET /a destcount +=1 
    MD "%destdir%\folder!destcount!" 
) 
ECHO(COPY "%sourcedir%\%%a" "%destdir%\folder!destcount!\" 
) 

GOTO :EOF 

Sie müssten die Einstellungen von sourcedir und destdir ändern, um Ihre Umstände anzupassen.

maxcount legt die Anzahl der Dateien fest, die einer Gruppe zugewiesen werden sollen.

Die erforderlichen COPY-Befehle sind lediglich ECHO für Testzwecke. Nachdem Sie überprüft haben, dass die Befehle korrekt sind, ändern Sie ECHO(COPY zu COPY, um die Dateien tatsächlich zu kopieren. Anfügen >nul zu Berichtnachrichten unterdrücken (zB. 1 file copied)

Im Wesentlichen zählen die Anzahl der Transfers und erhöhen das Ziel-Verzeichnisname jedes Mal eine Gruppe abgeschlossen ist, delayedexpansion mit Hilfe der Laufzeitwerte der Zähler zuzugreifen

+0

Ich falsches etwas http://pastebin.com/HUYAaNZP Ich teste vorher mit echo und sie ersetzen mit Ihrer Angabe, aber Dateien werden nicht innerhalb des Ordners verschoben. Allerdings bevorzuge ich diesen Batch-Befehl automatisch Ordner für jede 500 Dateien Gruppe erstellen, ohne dass ich eins nach dem anderen erstellen muss. Ist möglich? –

+0

Sorry, ich verwechsle den Zielpfad. Es war \ temp \ temp2 .. –

+0

Der Code scheint korrekt zu sein. Der Stapel sollte automatisch die Verzeichnisse "C: \ Benutzer \ Ufficio \ Desktop \ temp2 \ folder1" (Ihr veröffentlichter Stapel) oder "\ temp \ temp2 \ folder1" (Ihr Kommentar) erstellen. "Folder1" wird in "folder2" usw. erhöht für jeweils 500 kopierte Dateien. Ich müsste genau wissen, was eigentlich passiert ist, dass du nicht erwartet hast zu debuggen. Dies ist der Grund dafür, das 'echo (' an Ort und Stelle zu lassen (und möglicherweise 'maxcount' bei einer niedrigen Zahl zu lassen) - die' Kopie' wird einfach zum Bildschirm gesendet, so dass Sie sehen können, ob der Befehl korrekt ist. – Magoo