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

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

Mezolick 31-08-2017 12:40 2761649

разложить картинки по нумерованным папким
 
Здравствуйте, помогите пожалуйста создать скрипт .bat который переберет все картинки в папке и разложит их в новь созданные папки которые нумеруются с произволного номера N : 15,16,17...
Название картинки в каждой папке должны быть 0, а так же в каждой папке создать пустой файл text.txt
Заранее спасибо!

Iska 31-08-2017 16:34 2761708

Mezolick, попробуйте ещё раз описать Вашу задачу, но так, чтобы было понятна Ваша хотелка. При этом хотелось бы в новом описании увидеть ответы на вопросы:
  • Как определить «картинки» среди прочих файлов?
  • По какому принципу создаются папки? В какой момент? Как должен определяться «произвольный номер»?
  • По какому принципу должны «разлагаться» «картинки» в новосозданные папки?

Mezolick 01-09-2017 09:00 2761799

Как определить «картинки» среди прочих файлов? - в папке будут одни картинки, с расширение .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

Заранее спасибо.

Iska 01-09-2017 09:40 2761810

Код:

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

ОГО! спасибо огромное!!!


Время: 11:34.

Время: 11:34.
© OSzone.net 2001-