Показать полную графическую версию : [решено] Сжатие фотографий из CMD
Доброго всем времени суток!
Требуется сжать фотографии с помощью консоли. Фотографии хранятся в папке в которой имеются под папки в которых тоже есть фотографии. И это всё необходимо сжать, причём сжимать надо раз в сутки не сжимая ранее сжатые фото т.к. будут добавляться новые фотографии.
Пробовал nConvert, но так и не вышло обработать подкаталоги, и сделать чтобы не обрабатывались ранее сжатые фотографии.
Прошу помочь уважаемых гуру в решении данной задачи.
xctr, начните с того, в каком исходном формате находятся фотографии. Затем расскажите, что Вы подразумеваете подо «сжать». Под конец опишите, как Вы сие делали при помощи «nconvert.exe».
Хех извиняюсь за неполный вопрос. Фотографий в формате .jpg. Сжать значит уменьшить размер фото (кол-во пикселей) на указанный процент (В команде должно быть прописано, на сколько процентов уменьшить) чтобы уменьшить размер фото в КБ. В nconvert дошел только для "урезания фото" на указанный процент в исходной папке:
nconvert -overwrite -resize 50% 50% *.jpg
Как я писал выше не получается сделать:
но так и не вышло обработать подкаталоги, и сделать чтобы не обрабатывались ранее сжатые фотографии. »
В общем нужно что нибудь для автоматического уменьшения размера фотографии в корневой папке с обработкой всех под папок...
kiripanda
10-02-2012, 20:55
http://forum.wincmd.ru/viewpost.php?p=47101
http://forum.wincmd.ru/viewpost.php?p=87788
xctr, насчёт:
…и сделать чтобы не обрабатывались ранее сжатые фотографии. »
сделать можно, но не нужно. Достаточно иметь промежуточную папку для обработки. Держать обработанные и необработанные файлы «в одном флаконе» — неправильно.
По остальному — примерно так:
@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» — путь и маска файлов.
Iska, спасибо это то что нужно!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.