Войти

Показать полную графическую версию : bat файл по переносу файлов


Heinous
14-07-2016, 13:21
Добрый день.
Прошу помочь со скриптом.
Дано. Каталог с кучей файлов. Необходим скрипт по переносу этих файлов в раздельные каталоги. В скрипте нужно указать путь к первому каталогу и второму. Во втором каталоге должны создаваться подкаталоги по маске 00001, 00002 и т.д. и в них переносить н-ное количество файлов из первого каталога. В результате куча файлов из первого каталога должны перекочевать во второй каталог в отдельные папки с разбивкой по количеству файлов.
Заранее спасибо.

Elven
14-07-2016, 14:53
и как эти файлы будут разделяться, по какому принципу их следует относить к какому каталогу? Покуда что я вижу задачу уровня "в контейнере лежат детали, они будут высыпаться в ящики пронумерованные 00001, 00002 и т.д. в результате на выходе мы получим "девятку", или "калину", или мясорубку - главное чтобы первый контейнер опустел"

Heinous
14-07-2016, 15:16
По порядку. Скажем берется ограничение в 500 файлов на каталог и начинаем переносить. 500 в каталог 00001, 500 в каталог 00002 и т.д.

megaloman
14-07-2016, 19:22
@Echo Off

Set "Kat1=Z:\Katalog1"
Set "Kat2=Z:\Katalog2"
Set /A Kvota=500

SetLocal EnableExtensions EnableDelayedExpansion

Set /A NF=0
Set /A ND=100000

For /F "usebackq delims=" %%f IN (`Dir /b /A:-D /O:D "%Kat1%\*.*"`) DO (
Set /A NF+=1
If !NF! GTR %Kvota% Set /A NF=1
If !NF! EQU 1 Call :Kat "ND"
Move /Y "%Kat1%\%%f" "%Kat2%\!ND:~1,10!\" >nul
)
GoTo :Eof

:Kat
Set /A %~1+=1
If Exist "%Kat2%\!%~1:~1,10!" GoTo :Kat
md "%Kat2%\!%~1:~1,10!"
GoTo :Eof

Heinous
15-07-2016, 09:30
Вот спасибо. Великолепно работает.




© OSzone.net 2001-2012