я используюOptiPNGдля большого количества PNG, которые мне нужно оптимизировать. Я могу заставить его работать с пакетным скриптом, где приложениеиизображения находятся в одной папке.
start.bat
содержит:
start _OPNG.exe *.png -zc9 -zm9 -zs3 -f0-5 -nc -strip "all"
Однако, предположим, у меня есть папка d:\images
с 1.png
through 10.png
, а затем у меня есть подпапка d:\images\sub1
с 1sub.png
through 10sub.png
.
Приложение расположено, скажем, в f:\OptiPNG\optipng.exe
.
Мне нужен пакетный файл, в котором мне нужно вручную редактировать только местоположение папки с изображениями, которую я хочу оптимизировать. Пакетный файл должен учитывать все PNG в этой папке и ее подпапках.
Кто-нибудь может мне помочь?
решение1
Попробуйте следующее:
@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"