CMD/BAT - [решено] Сжатие фотографий из CMD

Ответить
Аватара пользователя
xctr

CMD/BAT - [решено] Сжатие фотографий из CMD

Сообщение xctr »

Доброго всем времени суток!

Требуется сжать фотографии с помощью консоли. Фотографии хранятся в папке в которой имеются под папки в которых тоже есть фотографии. И это всё необходимо сжать, причём сжимать надо раз в сутки не сжимая ранее сжатые фото т.к. будут добавляться новые фотографии.

Пробовал nConvert, но так и не вышло обработать подкаталоги, и сделать чтобы не обрабатывались ранее сжатые фотографии.

Прошу помочь уважаемых гуру в решении данной задачи.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Сжатие фотографий из CMD

Сообщение Iska »

xctr, начните с того, в каком исходном формате находятся фотографии. Затем расскажите, что Вы подразумеваете подо «сжать». Под конец опишите, как Вы сие делали при помощи «nconvert.exe».
Аватара пользователя
xctr

Re: CMD/BAT - [решено] Сжатие фотографий из CMD

Сообщение xctr »

Хех извиняюсь за неполный вопрос. Фотографий в формате .jpg. Сжать значит уменьшить размер фото (кол-во пикселей) на указанный процент (В команде должно быть прописано, на сколько процентов уменьшить) чтобы уменьшить размер фото в КБ. В nconvert дошел только для "урезания фото" на указанный процент в исходной папке:



Код:

Код: Выделить всё

nconvert -overwrite -resize 50% 50% *.jpg

Как я писал выше не получается сделать:


Цитата xctr:



но так и не вышло обработать подкаталоги, и сделать чтобы не обрабатывались ранее сжатые фотографии.
CMD/BAT - [решено] Сжатие фотографий из CMD
Аватара пользователя
xctr

Re: CMD/BAT - [решено] Сжатие фотографий из CMD

Сообщение xctr »

В общем нужно что нибудь для автоматического уменьшения размера фотографии в корневой папке с обработкой всех под папок...
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Сжатие фотографий из CMD

Сообщение Iska »

xctr, насчёт:


Цитата xctr:



…и сделать чтобы не обрабатывались ранее сжатые фотографии.
CMD/BAT - [решено] Сжатие фотографий из CMD




сделать можно, но не нужно. Достаточно иметь промежуточную папку для обработки. Держать обработанные и необработанные файлы «в одном флаконе» — неправильно.



По остальному — примерно так:



Код:

Код: Выделить всё

@echo off
setlocal enableextensions enabledelayedexpansion
set sPath="E:\Песочница\0115\*.jpg"
call :GetTemporaryName
>nul chcp 1251
>"%TemporaryName%" dir /s /b "%sPath%"
>nul "%ProgramFiles%\XnView\nconvert.exe" -ratio -resize 50%% 50%% -overwrite -l "%TemporaryName%"
>nul chcp 866
>nul del /f /q "%TemporaryName%"
endlocal
exit /b 0
rem ==========================================================================
rem ==========================================================================
rem Функция GetTemporaryName()
rem 
rem Серый форум / CMD/BAT: генерация пути для временного файла или папки
rem (http://forum.script-coding.com/viewtopic.php?id=6259)
rem ==========================================================================
:GetTemporaryName
    setlocal enableextensions enabledelayedexpansion
:NextName
    set sTempName=%temp%\temp%random%.tmp
    if exist "%sTempName%" goto :NextName
    set sProcName=%~0
    endlocal & set %sProcName:~4%=%sTempName%
    exit /b 0
rem ==========================================================================

где «sPath» — путь и маска файлов.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»