Como faço para otimizar arquivos de imagem em lote com um script?

4

Estou usando OptiPNG para uma grande quantidade de PNGs que preciso otimizar. Posso executá-lo com um script em lotes, onde a imagem do aplicativo e estão juntas em uma pasta.

start.bat contém:

start _OPNG.exe *.png -zc9 -zm9 -zs3 -f0-5 -nc -strip "all"

No entanto, digamos que eu tenha uma pasta em d:\images com 1.png a 10.png , então eu tenho uma subpasta d:\images\sub1 com 1sub.png a 10sub.png .

O aplicativo está localizado em, digamos, f:\OptiPNG\optipng.exe .

Eu quero um arquivo de lote no qual eu tenha que editar manualmente apenas o local da pasta de imagens que desejo otimizar. O arquivo de lote deve levar em conta todos os PNGs nessa pasta e suas subpastas.

Alguém pode me ajudar?

    
por Grumpy ol' Bear 06.06.2013 / 16:12

1 resposta

1

Tente o seguinte:

@echo off
echo.
set apppath="F:\OptiPNG\OptiPNG.exe"
if [%1]==[] echo Usage: %0 "PNG Dir" && echo. && echo Error: Invalid parameters && goto :EOF
if not exist %1 echo Usage: %0 "PNG Dir" && echo. && echo Error: Invalid directory "%~1" && goto :EOF
%apppath% "%~1\*.png" -zc9 -zm9 -zs3 -f0-5 -nc -strip "all"
for /d /r "%~1" %%a in (*.*) do %apppath% "%%~a\*.png" -zc9 -zm9 -zs3 -f0-5 -nc -strip "all"
    
por 06.06.2013 / 16:58