Показать полную графическую версию : [решено] разложить картинки по нумерованным папким
Mezolick
31-08-2017, 12:40
Здравствуйте, помогите пожалуйста создать скрипт .bat который переберет все картинки в папке и разложит их в новь созданные папки которые нумеруются с произволного номера N : 15,16,17...
Название картинки в каждой папке должны быть 0, а так же в каждой папке создать пустой файл text.txt
Заранее спасибо!
Mezolick, попробуйте ещё раз описать Вашу задачу, но так, чтобы было понятна Ваша хотелка. При этом хотелось бы в новом описании увидеть ответы на вопросы:
Как определить «картинки» среди прочих файлов?
По какому принципу создаются папки? В какой момент? Как должен определяться «произвольный номер»?
По какому принципу должны «разлагаться» «картинки» в новосозданные папки?
Mezolick
01-09-2017, 09:00
Как определить «картинки» среди прочих файлов? - в папке будут одни картинки, с расширение .jpg
По какому принципу создаются папки? В какой момент? Как должен определяться «произвольный номер»? - я имею в виду произвольное начало счетчика, допустим в коде указываешь N=32, и все папки начинают сосздваться с номера 32: 32,33,34, 35 и т.
алгоритм такой:
1. скрипт кладется в папку с картинками (допустим run.bat)
2. в скрипте указывается начало счетчика, допустим 32
3. скрипт запускается
4. скрипт создается папку temp, если ее нет
5. в этой папке создает папку 32
6. туда копирует первую картинку из папки скрипта и переименовывает ее в 0.jpg
7. в эту же папку создает пустой текстовый файл text.txt
8. дальше создает папку 33 и так далее, пока все картинки в папке не закончатся
Если копировать картинку не получается, ее можно перемещать в папку temp
Заранее спасибо.
@echo off
setlocal enableextensions enabledelayedexpansion
set /a iStartNumber = 15
for /f "usebackq delims=" %%i in (`2^>nul dir /b /a:-d "*.jpg"`) do (
2>nul md "temp"
2>nul md "temp\!iStartNumber!"
>nul copy /y "%%~i" "temp\!iStartNumber!\0.jpg"
>nul copy nul "temp\!iStartNumber!\text.txt"
echo [%%i] --^> [temp\!iStartNumber!\0.jpg]
set /a iStartNumber += 1
)
endlocal
exit /b 0
Mezolick
01-09-2017, 10:05
ОГО! спасибо огромное!!!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.