Перенос по N фалов в каждую папку созданную из списка.
Доброго времени суток.
Прошу помощи.
Есть такая практическая задача. Существует папка A с файлами (jpg). они отсортированы по времени их создания. Есть файл name.txt со списком имен.
Количество файлов в 3 раза больше чем имен.
Необходимо создать папку (первую из списка) и переместить (не копировать) в нее 3 первых файла из папки А, потом создать папку (вторую из списка) и переместить туда следующие 3 файла(хотя на тот момент по идее они уже будут первые).
И так до тех пор, пока не закончатся все файлы (соответственно и названия в списке файла name.txt)
Примечание. Необходимо строго соблюдать очередность: самое первое название папки из списка, соответствует первым трем (по дате создания) файлам
|
Вопросы: - Файлы сортируем по возрастанию или убыванию даты создания? То есть, какие должны быть у нас в начале — более новые или более старые?
- Список имён в файле «name.txt» содержит относительные или абсолютные имена папок?
- Если относительные — то относительно чего: текущего каталога или исходного каталога?
Вот болванка:
Скрытый текст
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFolder=C:\Мои проекты\38
set sMask=*.jpg
set sFolderList=C:\Мои проекты\38\name.txt
if exist "%sSourceFolder%\." (
pushd "%sSourceFolder%"
if exist "%sFolderList%" (
for /f "usebackq delims=" %%i in ("%sFolderList%") do (
2>nul md "%%~i"
for /f "usebackq tokens=1* delims=[]" %%j in (
`2^>nul dir /b /a:-d /o:d /t:c "%sSourceFolder%\%sMask%" ^| find.exe /n /v ""`
) do if %%j leq 3 >nul move "%%~k" "%%~i\"
)
) else (
echo Can't find folder list file [%sFolderList%].
exit /b 2
)
popd
) else (
echo Can't find source folder [%sSourceFolder%].
exit /b 1
)
endlocal
exit /b 0
для условий: - Файлы сортируются по возрастанию, т.е. более старые — в начале.
- Список имён содержит относительные имена папок.
- Имена считаются заданными относительно исходной папки.
|
Время: 21:42.
© OSzone.net 2001-