mugil_cephalus Цитата: напрмер, так - том:\путь\Docs\pngcrush.exe
Я имел ввиду как получить путь, я просто не знаю где будет находится pngcrush.exe, я только знаю что в папке Docs, а папка Docs находится в той же папке что мой батник
Добавлено: mugil_cephalus Вы не поможете разобраться со вторым вопросом?
как сделать если в папке Images нет файлов *.png, то запрос не выдается, а пишется что файлов *.png в папке Images не обнаружилось? тоже самое для jpeg. И если можно чтобы все запросы выводились до запуска циклов?
Просто у меня кроме png есть еще jpeg
[more]
Код: @echo off
:loop
echo [1] PNG Interlace - Noninterlaced
echo [2] PNG Interlace - Adam7
set /p png="Choose a task by number: "
if not defined png goto:eof
if %png%==1 goto:1
if %png%==2 goto:2
if /i "_%png%" neq "_1" if /i "_%png%" neq "_2" goto:loop
goto:eof
:1
echo 1
Rem Оптимизация PNG (Interlace - Noninterlaced)
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.png') do (
call png.cmd "%%~fi"
pngcrush.exe -rem alla -brute -reduce "%%~fi" "%%~dpni.tmp"
move /y "%%~dpni.tmp" "%%~fi"
advdef.exe -z -4 "%%~fi"
deflopt.exe "%%~fi"
)
goto:eof
:2
echo 2
Rem Оптимизация PNG (Interlace - Adam7)
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.png') do (
optipng.exe -i1 "%%~fi"
pngcrush.exe -rem alla -brute -reduce "%%~fi" "%%~dpni.tmp"
move /y "%%~dpni.tmp" "%%~fi"
advdef.exe -z -4 "%%~fi"
deflopt.exe "%%~fi"
optipng.exe -zc1-9 -zm1-9 -zs0-3 -f0-5 "%%~fi"
advdef.exe -z -4 "%%~fi"
deflopt.exe "%%~fi"
)
goto:eof
:loop
echo [1] JPEG - Progressive
echo [2] JPEG - Optimize
echo [3] JPEG - Progressive vs. Optimize
set /p jpeg="Choose a task by number: "
if not defined jpeg goto:eof
if %jpeg%==1 goto:1
if %jpeg%==2 goto:2
if %jpeg%==3 goto:3
if /i "_%jpeg%" neq "_1" if /i "_%jpeg%" neq "_2" if /i "_%jpeg%" neq "_3" goto:loop
goto:eof
:1
echo 1
Rem Оптимизация JPEG (Progressive)
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.jpg Images\*.jpeg') do (
jpegtran.exe -copy all -progressive "%%~fi" "%%~fi"
jhead.exe -dc -de -di -dx -du "%%~fi"
)
goto:eof
:2
echo 2
Rem Оптимизация JPEG (Optimize)
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.jpg Images\*.jpeg') do (
jpegtran.exe -copy all -optimize "%%~fi" "%%~fi"
jhead.exe -dc -de -di -dx -du "%%~fi"
)
goto:eof
:3
echo 2
Rem Оптимизация JPEG (Progressive vs. Optimize)
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.jpg Images\*.jpeg') do (
jpegtran.exe -copy all -progressive "%%~fi" "%%~dpni_pro.tmp"
jpegtran.exe -copy all -optimize "%%~fi" "%%~dpni_opt.tmp"
call :compare "%%~dpni_pro.tmp" "%%~dpni_opt.tmp" "%%~fi" "%%~nxi"
jhead.exe -dc -de -di -dx -du "%%~fi"
)
goto :eof
:compare
if %~z1 LSS %~z2 (
DEL /F /Q %2
DEL /F /Q %3
REN %1 %4
) else (
DEL /F /Q %1
DEL /F /Q %3
REN %2 %4
)
goto:eof