Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   bat файл по переносу файлов (http://forum.oszone.net/showthread.php?t=316787)

Heinous 14-07-2016 13:21 2650796

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

Elven 14-07-2016 14:53 2650837

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

Heinous 14-07-2016 15:16 2650847

По порядку. Скажем берется ограничение в 500 файлов на каталог и начинаем переносить. 500 в каталог 00001, 500 в каталог 00002 и т.д.

megaloman 14-07-2016 19:22 2650976

Код:

@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 2651076

Вот спасибо. Великолепно работает.


Время: 22:18.

Время: 22:18.
© OSzone.net 2001-