Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 8

Автор: barsikline
Дата сообщения: 18.06.2010 00:49
wolf0425, res2001 и igor_andreev спасибо!
Автор: us0r
Дата сообщения: 18.06.2010 11:26
Ошибки при D&D
Автор: us0r
Дата сообщения: 18.06.2010 21:09
Мне кажется, что можно организовать работу и на работающий батнег.

Код: REM Это кусок батника! Тестирования не проводилось!
setlocal
:request
set /p req= "Check parameters? (Y | N):"
if /i "%req%"=="y" (if /i "%"1=="" ping -n 6000 -l 1 127.0.0.1 && goto :request)
if /i "%req%"=="n" echo Ok. Continuing work. && goto :continue
if /i "%req%"=="" goto :continue
:continue
REM Продолжаем работу...
endlocal
Автор: wolf0425
Дата сообщения: 18.06.2010 21:43
us0r
Цитата:
REM Это кусок батника! Тестирования не проводилось!
так какие проблемы - проведи, результаты расскажешь.
вариант провести тест вместо отправки на форум - ты уже пропустил...

ps: ключики у пинга ты сам придумал, или срисовал откуда?
pps: ты с недавно самозабанившегося камрада пример не бери и учись писать стопку разбора вариантов сразу правильно, с закладом на ошибки юзера. В смысле то что там сейчас - это пример как не надо писать

Автор: lorents
Дата сообщения: 18.06.2010 22:41
Добрый вечер!

помогите, пожалуйста, решить следующую проблему:
как можно сделать чтобы параметры для обработки изображений выдавались сразу, а не по частям как сейчас, т.е. сначала выдается запрос на параметры PNG, и после обработки PNG, идет только только JPEG. Как это можно исправить?

[more=ImageOptimizer]
Код: @echo off
TITLE ImageOptimizer 1.0.1.1 от 25.06.2010
echo Image Optimizer - сборник программ для оптимизации изображений (PNG, JPEG) без потери качества (под оптимизацией понимается попиксельная беспотерьность при уменьшении размера в рамках того же формата), состоящий из следующих программ:
echo * Advpng (входит в состав AdvanceComp 1.15 от 01.11.2005);
echo * DeflOpt 2.07 от 05.09.2007;
echo * Jhead 2.90 от 05.02.2010;
echo * Jpegtran (входит в состав Libjpeg 8b от 16.05.2010);
echo * OptiPng 0.6.4 от 15.03.2010;
echo * PngCrush 1.7.11 от 10.05.2010;
echo * PngOut от 09.06.2010;
echo * PrePng от 17.05.10;
echo * Zlib 1.2.5 от 19.04.2010.
echo Автор не несет ответственность за работу данного приложения.
echo Вы используете данную программу под свой страх и риск.
echo Скопируйте необходимые изображения или папки с изображениями в папку "Images" и нажмите на Enter для продолжения.

pause>nul

:png
1>nul 2>nul dir /b /s /a-d Images\*.png || goto:jpeg

:loop1
echo Параметр оптимизации PNG:
echo [1] Noninterlaced
echo [2] Adam7 (Interlaced)

set /p png="Укажите параметр оптимизации PNG и нажмите на Enter: "

if not defined png goto:eof
if %png%==1 goto:Noninterlaced
if %png%==2 goto:Adam7
goto:loop1

:Noninterlaced
echo Noninterlaced
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.png') do (
    "%~dp0Docs\prepng.exe" "%%~fi" "%%~dpni_1.png"
    call :pngopt "%%~dpni_1.png"
    "%~dp0Docs\advpng.exe" -z -4 "%%~dpni_1.png"
    "%~dp0Docs\deflopt.exe" "%%~dpni_1.png"
    "%~dp0Docs\prepng.exe" "%%~fi" "%%~dpni_2.png"
Rem    "%~dp0Docs\pngcrush.exe" -rem alla -brute -reduce "%%~dpni_2.png" "%%~dpni_3.png"
Rem    move /y "%%~dpni_3.png" "%%~dpni_2.png"
Rem    "%~dp0Docs\advpng.exe" -z -4 "%%~dpni_2.png"
Rem    "%~dp0Docs\deflopt.exe" "%%~dpni_2.png"
    "%~dp0Docs\optipng.exe" -i0 -zc1-9 -zm1-9 -zs0-3 -f0-5 "%%~dpni_2.png"
    "%~dp0Docs\advpng.exe" -z -4 "%%~dpni_2.png"
    "%~dp0Docs\deflopt.exe" "%%~dpni_2.png"
    "%~dp0Docs\pngout.exe" "%%~dpni_2.png"
    "%~dp0Docs\advpng.exe" -z -4 "%%~dpni_2.png"
    "%~dp0Docs\deflopt.exe" "%%~dpni_2.png"
    call :compare "%%~dpni_1.png" "%%~dpni_2.png" "%%~fi" "%%~nxi"
)
goto:jpeg

:pngopt
"%~dp0Docs\optipng.exe" -i0 -zw32k -zc1-9 -zm1-9 -zs0-3 -f0-5 -full -force %1 > %temp%\png.log
for /f "delims==,IDAT tokens=5" %%i in (%temp%\png.log) do (
    set f=%%i
)
set f=%f:~1,1%
del %temp%\png.log
"%~dp0Docs\pngout.exe" /k0 /n2 /f%f% %1
goto:eof

:Adam7
echo Adam7
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.png') do (
    "%~dp0Docs\prepng.exe" "%%~fi"
    "%~dp0Docs\optipng.exe" -i1 "%%~fi"
    "%~dp0Docs\pngcrush.exe" -rem alla -brute -reduce "%%~fi" "%%~dpni.tmp"
    move /y "%%~dpni.tmp" "%%~fi"
    "%~dp0Docs\advpng.exe" -z -4 "%%~fi"
    "%~dp0Docs\deflopt.exe" "%%~fi"
    "%~dp0Docs\optipng.exe" -zw32k -zc1-9 -zm1-9 -zs0-3 -f0-5 "%%~fi"
    "%~dp0Docs\advpng.exe" -z -4 "%%~fi"
    "%~dp0Docs\deflopt.exe" "%%~fi"
)

:jpeg
1>nul 2>nul dir /b /s /a-d Images\*.jpg Images\*.jpeg && goto:loop2
if defined png goto:eof
echo Изображения формата *.png и *.jpg (*.jpeg) в папке "Images" не обнаружены.
echo Нажмите на Enter для выхода из приложения.
pause>nul
goto:eof)

:loop2
echo Параметр оптимизации JPEG:
echo [1] Optimize
echo [2] Progressive
echo [3] Progressive vs. Optimize (сравниваются по размеру файлы, полученные обоими методами сжатия, и выбирается файл с наименьшим размером)

set /p jpeg="Укажите параметр оптимизации JPEG и нажмите на Enter: "

if not defined jpeg goto:eof
if %jpeg%==1 goto:Optimize
if %jpeg%==2 goto:Progressive
if %jpeg%==3 goto:Progressive_Optimize
goto:loop2

:Optimize
echo JPEG - Optimize
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.jpg Images\*.jpeg') do (
    "%~dp0Docs\jpegtran.exe" -copy all -optimize "%%~fi" "%%~fi"
    "%~dp0Docs\jhead.exe" -dc -de -di -dx -du "%%~fi"
)
goto:eof

:Progressive
echo JPEG - Progressive
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.jpg Images\*.jpeg') do (
    "%~dp0Docs\jpegtran.exe" -copy all -progressive "%%~fi" "%%~fi"
    "%~dp0Docs\jhead.exe" -dc -de -di -dx -du "%%~fi"
)
goto:eof

:Progressive_Optimize
echo JPEG - Progressive vs. Optimize
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.jpg Images\*.jpeg') do (
    "%~dp0Docs\jpegtran.exe" -copy all -progressive "%%~fi" "%%~dpni_pro.tmp"
    "%~dp0Docs\jpegtran.exe" -copy all -optimize "%%~fi" "%%~dpni_opt.tmp"
    call :compare "%%~dpni_pro.tmp" "%%~dpni_opt.tmp" "%%~fi" "%%~nxi"
    "%~dp0Docs\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
Автор: res2001
Дата сообщения: 19.06.2010 18:34
lorents
Ну а какие проблемы?
Сначала узнай, есть ли в каталоге png, если есть запроси параметры, потом посмотри есть ли jpg, параметры, а потом только обработку.
Написав такой здаровый батнег, ты с этим и сам справишься
Автор: lorents
Дата сообщения: 19.06.2010 19:22
res2001
Выходит так?

[more=ImageOptimizer]
Код: @echo off
TITLE ImageOptimizer 1.0.1.1 от 01.07.2010
echo Image Optimizer - сборник программ для оптимизации изображений (PNG, JPEG) без потери качества (под оптимизацией понимается попиксельная беспотерьность при уменьшении размера в рамках того же формата), состоящий из следующих программ:
echo * Advpng (входит в состав AdvanceComp 1.15 от 01.11.2005);
echo * DeflOpt 2.07 от 05.09.2007;
echo * Jhead 2.90 от 05.02.2010;
echo * Jpegtran (входит в состав Libjpeg 8b от 16.05.2010);
echo * OptiPng 0.6.4 от 15.03.2010;
echo * PngCrush 1.7.11 от 10.05.2010;
echo * PngOut от 09.06.2010;
echo * PrePng от 17.05.10;
echo * Zlib 1.2.5 от 19.04.2010.
echo Автор не несет ответственность за работу данного приложения.
echo Вы используете данную программу под свой страх и риск.
echo Скопируйте необходимые изображения или папки с изображениями в папку "Images" и нажмите на Enter для продолжения.

pause>nul

:png
1>nul 2>nul dir /b /s /a-d Images\*.png || goto:jpeg

:loop1
echo Параметр оптимизации PNG:
echo [1] Noninterlaced;
echo [2] Adam7 (Interlaced).
set /p png="Укажите параметр оптимизации PNG и нажмите на Enter: "

:jpeg
1>nul 2>nul dir /b /s /a-d Images\*.jpg Images\*.jpeg && goto:loop2
if defined png goto:eof
echo Изображения формата *.png и *.jpg (*.jpeg) в папке "Images" не обнаружены.
echo Нажмите на Enter для выхода из приложения.
pause>nul
goto:eof

:loop2
echo Параметр оптимизации JPEG:
echo [1] Optimize;
echo [2] Progressive;
echo [3] Progressive vs. Optimize (сравниваются по размеру файлы, полученные обоими методами сжатия, и выбирается файл с наименьшим размером).
echo Внимание:
echo При Progressive'ом методе сжатие оригинальное и полученное изображения попиксельно будут отличаться, но на глаз определить не возможно.
set /p jpeg="Укажите параметр оптимизации JPEG и нажмите на Enter: "


if not defined png goto:eof
if %png%==1 goto:Noninterlaced
if %png%==2 goto:Adam7
goto:loop1

:Noninterlaced
echo Noninterlaced
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.png') do (
    "%~dp0Docs\prepng.exe" "%%~fi" "%%~dpni_png1.png"
    call :pngopt "%%~dpni_png1.png"
    "%~dp0Docs\advpng.exe" -z -4 "%%~dpni_png1.png"
    "%~dp0Docs\deflopt.exe" "%%~dpni_png1.png"
    "%~dp0Docs\prepng.exe" "%%~fi" "%%~dpni_png2.png"
Rem    "%~dp0Docs\pngcrush.exe" -rem alla -brute -reduce "%%~dpni_png2.png" "%%~dpni_png3.png"
Rem    move /y "%%~dpni_png3.png" "%%~dpni_png2.png"
Rem    "%~dp0Docs\advpng.exe" -z -4 "%%~dpni_png2.png"
Rem    "%~dp0Docs\deflopt.exe" "%%~dpni_png2.png"
    "%~dp0Docs\optipng.exe" -i0 -zc1-9 -zm1-9 -zs0-3 -f0-5 "%%~dpni_png2.png"
    "%~dp0Docs\advpng.exe" -z -4 "%%~dpni_png2.png"
    "%~dp0Docs\deflopt.exe" "%%~dpni_png2.png"
    "%~dp0Docs\pngout.exe" "%%~dpni_png2.png"
    "%~dp0Docs\advpng.exe" -z -4 "%%~dpni_png2.png"
    "%~dp0Docs\deflopt.exe" "%%~dpni_png2.png"
    call :compare "%%~dpni_png1.png" "%%~dpni_png2.png" "%%~fi" "%%~nxi"
)
goto:jpeg

:pngopt
"%~dp0Docs\optipng.exe" -i0 -zw32k -zc1-9 -zm1-9 -zs0-3 -f0-5 -full -force %1 > %temp%\png.log
for /f "delims==,IDAT tokens=5" %%i in (%temp%\png.log) do (
    set f=%%i
)
set f=%f:~1,1%
del %temp%\png.log
"%~dp0Docs\pngout.exe" /k0 /n2 /f%f% %1
goto:eof

:Adam7
echo Adam7
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.png') do (
    "%~dp0Docs\prepng.exe" "%%~fi"
    "%~dp0Docs\optipng.exe" -i1 "%%~fi"
    "%~dp0Docs\pngcrush.exe" -rem alla -brute -reduce "%%~fi" "%%~dpni.tmp"
    move /y "%%~dpni.tmp" "%%~fi"
    "%~dp0Docs\advpng.exe" -z -4 "%%~fi"
    "%~dp0Docs\deflopt.exe" "%%~fi"
    "%~dp0Docs\optipng.exe" -zw32k -zc1-9 -zm1-9 -zs0-3 -f0-5 "%%~fi"
    "%~dp0Docs\advpng.exe" -z -4 "%%~fi"
    "%~dp0Docs\deflopt.exe" "%%~fi"
)

if not defined jpeg goto:eof
if %jpeg%==1 goto:Optimize
if %jpeg%==2 goto:Progressive
if %jpeg%==3 goto:Progressive_Optimize
goto:loop2

:Optimize
echo JPEG - Optimize
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.jpg Images\*.jpeg') do (
    "%~dp0Docs\jpegtran.exe" -copy all -optimize "%%~fi" "%%~fi"
    "%~dp0Docs\jhead.exe" -dc -de -di -dx -du "%%~fi"
)
goto:eof

:Progressive
echo JPEG - Progressive
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.jpg Images\*.jpeg') do (
    "%~dp0Docs\jpegtran.exe" -copy all -progressive "%%~fi" "%%~fi"
    "%~dp0Docs\jhead.exe" -dc -de -di -dx -du "%%~fi"
)
goto:eof

:Progressive_Optimize
echo JPEG - Progressive vs. Optimize
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.jpg Images\*.jpeg') do (
    "%~dp0Docs\jpegtran.exe" -copy all -progressive "%%~fi" "%%~dpni_pro.tmp"
    "%~dp0Docs\jpegtran.exe" -copy all -optimize "%%~fi" "%%~dpni_opt.tmp"
    call :compare "%%~dpni_pro.tmp" "%%~dpni_opt.tmp" "%%~fi" "%%~nxi"
    "%~dp0Docs\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
Автор: king_stiven
Дата сообщения: 19.06.2010 19:45
lorents

Цитата:
Как можно увеличить расстояние между строками

echo.
Автор: res2001
Дата сообщения: 19.06.2010 19:48
lorents

Цитата:
Выходит так?

Почти.
В строке:
if defined png goto:eof
Надо переход делать не на :eof а на обработку png, иначе выходит, если в каталоге есть png, но нет jpg - то обрабатываться ничего не будет, хоть и запросит параметры для png.

Цитата:
Как можно увеличить расстояние между строками

Команда
echo.
выводит пустую строку. Всставляй в нужных местах.

Добавлено:
lorents
В строке:
if not defined png goto:eof
А тут тебе надо делать переход на обработку jpg
Автор: wolf0425
Дата сообщения: 19.06.2010 20:42

Цитата:
Данный код мне помогли написать, особенно wolf0425.
к сожалению впрок тебе это не пошло, как не умел ты программировать или хотя бы разбираться в том что делает готовый код - так и не умеешь, комбинируешь куски командника совершенно не задействуя мозг.
Автор: lorents
Дата сообщения: 19.06.2010 21:24
res2001
а как сделать переход на обработку, мне ведь для этого нужен параметр для обработки?
я просто не догоняю.

wolf0425
знаю, дело в том что я с батниками крайне редко общаюсь, для всех нужд использую AutoPlay Media Studio
Автор: king_stiven
Дата сообщения: 19.06.2010 21:33
wolf0425
http://www.imageoptimizer.net/FAQ.aspx
Now you can upgrade your Image Optimizer only 8.99 фунтов
Это не он продаёт? А ты говоришь комбинировать не может.
Автор: us0r
Дата сообщения: 20.06.2010 00:01
wolf0425
ping /? ещё никто не отменял...
А вот про ошибки пользователя- подробнее...
Автор: wolf0425
Дата сообщения: 20.06.2010 01:31
us0r
Цитата:
ping /? ещё никто не отменял...
да ну, и ты его читал, и именно в соответствии с ним вписал полуторачасовую паузу в батник?
ппц как чтение хэлпа на креатив влияет...


Цитата:
А вот про ошибки пользователя- подробнее...
а ты батник приведи в рабочий вид для начала, потестируй чуток, если не поймешь сам в чем проблема с ошибками пользователя - напишу.

Автор: boy999
Дата сообщения: 20.06.2010 08:09
Multi Password Recovery

Можно ли её так настроить, чтоб воткнул флэшку в комп, а она собрала все пароли и сохранила в файл!? Сама, на полном автомате!?

Добавлено:
Вот репак проги: http://multi-up.com/278396
Автор: mugil_cephalus
Дата сообщения: 20.06.2010 09:17
lorents

Цитата:
У меня исчезла баковая панель прокрутки батника, как это можно справить, и у командной строки тоже?


Код: C:\>mode con
Автор: lorents
Дата сообщения: 20.06.2010 09:58
mugil_cephalus
как раз с этим была проблема, уже исправил, там размер буфера экрана был маленький
спасибо
Автор: mugil_cephalus
Дата сообщения: 20.06.2010 10:05
king_stiven

Цитата:
Это не он продаёт?

сильно сомнительно , но похожее уже было - http://forum.ru-board.com/topic.cgi?forum=5&topic=29819&start=1340#13
Автор: yurkesha
Дата сообщения: 20.06.2010 10:28
mugil_cephalus
Цитата:
наткнулся на создание ярлыка батником, правда, мудреный путь

Но линк на книгу все-таки надоть переправить на такой. Чтоб скачать можно было без ограничений...
Автор: mugil_cephalus
Дата сообщения: 20.06.2010 10:34
yurkesha

Цитата:
Но линк на книгу все-таки надоть переправить на такой. Чтоб скачать можно было без ограничений...

ну ты уже поправил
Автор: ComradG
Дата сообщения: 20.06.2010 12:34
mugil_cephalus
Да не пропадал я никуда: малость здоровье пошатнулось, но ничего серьезного. Ну и занят был написанием ls для одного из форумчан. Правда, пока работа над ней так и не закончена. Относительно ярлыков через INF - это интересно, но я так и не понял (прости за тугодумство) за какой хвост нужно тянуть файло, чтобы оно сказало "му"?
Автор: yurkesha
Дата сообщения: 20.06.2010 12:46
ComradG
Ну вначале создать inf-файл - например my_inf.inf
А потом нечто вроде:
Код: rundll32.exe setupapi.dll, InstallHinfSection DefaultInstall 132 my_inf.inf
Автор: ComradG
Дата сообщения: 20.06.2010 13:03
yurkesha
Друг, у меня ссылка виснет, поэтому и переспросил что да как. А так бы я книжку бы качнул. Все равно спасибо большое, очень порадовали. А то я от идеи создания ярлыков и вовсе отказался.

Добавлено:
Кстати, чуть не забыл, тут http://www.oszone.net/6946/ кажется тоже что-то было про ярлыки.

Добавлено:
И здесь http://www.oszone.net/3827
Автор: boy999
Дата сообщения: 20.06.2010 16:07
А мне помочь, с Multi Password Recovery, никто не хочет!?



Автор: res2001
Дата сообщения: 20.06.2010 16:42
boy999
напиши autorun.inf, положи его в корень флэшки, в нем пропиши запуск твоей софтины.
Тока тут все зависит от настроек винды - можно отключить автозапуск, тогда только руками запускать.

Добавлено:
lorents

Цитата:
а как сделать переход на обработку, мне ведь для этого нужен параметр для обработки?
я просто не догоняю.

актуально еще?
Автор: lorents
Дата сообщения: 20.06.2010 17:16
res2001

да
Автор: res2001
Дата сообщения: 20.06.2010 19:44
lorents
Как-то [more=так]
Код: @echo off
TITLE ImageOptimizer 1.0.1.1 от 01.07.2010
echo Image Optimizer - сборник программ для оптимизации изображений (PNG, JPEG) без потери качества (под оптимизацией понимается попиксельная беспотерьность при уменьшении размера в рамках того же формата), состоящий из следующих программ:
echo * Advpng (входит в состав AdvanceComp 1.15 от 01.11.2005);
echo * DeflOpt 2.07 от 05.09.2007;
echo * Jhead 2.90 от 05.02.2010;
echo * Jpegtran (входит в состав Libjpeg 8b от 16.05.2010);
echo * OptiPng 0.6.4 от 15.03.2010;
echo * PngCrush 1.7.11 от 10.05.2010;
echo * PngOut от 09.06.2010;
echo * PrePng от 17.05.10;
echo * Zlib 1.2.5 от 19.04.2010.
echo Автор не несет ответственность за работу данного приложения.
echo Вы используете данную программу под свой страх и риск.
echo Скопируйте необходимые изображения или папки с изображениями в папку "Images" и нажмите на Enter для продолжения.

pause>nul

:png
1>nul 2>nul dir /b /s /a-d Images\*.png || goto:jpeg

:loop1
echo Параметр оптимизации PNG:
echo [1] Noninterlaced;
echo [2] Adam7 (Interlaced).
set /p png="Укажите параметр оптимизации PNG и нажмите на Enter: "

:jpeg
1>nul 2>nul dir /b /s /a-d Images\*.jpg Images\*.jpeg && goto:loop2
if defined png goto :pngwork
echo Изображения формата *.png и *.jpg (*.jpeg) в папке "Images" не обнаружены.
echo Нажмите на Enter для выхода из приложения.
pause>nul
goto:eof

:loop2
echo Параметр оптимизации JPEG:
echo [1] Optimize;
echo [2] Progressive;
echo [3] Progressive vs. Optimize (сравниваются по размеру файлы, полученные обоими методами сжатия, и выбирается файл с наименьшим размером).
echo Внимание:
echo При Progressive'ом методе сжатие оригинальное и полученное изображения попиксельно будут отличаться, но на глаз определить не возможно.
set /p jpeg="Укажите параметр оптимизации JPEG и нажмите на Enter: "

:pngwork
if not defined png goto :jpegwork
if %png%==1 goto:Noninterlaced
if %png%==2 goto:Adam7
goto:loop1

:Noninterlaced
echo Noninterlaced
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.png') do (
"%~dp0Docs\prepng.exe" "%%~fi" "%%~dpni_png1.png"
call :pngopt "%%~dpni_png1.png"
"%~dp0Docs\advpng.exe" -z -4 "%%~dpni_png1.png"
"%~dp0Docs\deflopt.exe" "%%~dpni_png1.png"
"%~dp0Docs\prepng.exe" "%%~fi" "%%~dpni_png2.png"
Rem "%~dp0Docs\pngcrush.exe" -rem alla -brute -reduce "%%~dpni_png2.png" "%%~dpni_png3.png"
Rem move /y "%%~dpni_png3.png" "%%~dpni_png2.png"
Rem "%~dp0Docs\advpng.exe" -z -4 "%%~dpni_png2.png"
Rem "%~dp0Docs\deflopt.exe" "%%~dpni_png2.png"
"%~dp0Docs\optipng.exe" -i0 -zc1-9 -zm1-9 -zs0-3 -f0-5 "%%~dpni_png2.png"
"%~dp0Docs\advpng.exe" -z -4 "%%~dpni_png2.png"
"%~dp0Docs\deflopt.exe" "%%~dpni_png2.png"
"%~dp0Docs\pngout.exe" "%%~dpni_png2.png"
"%~dp0Docs\advpng.exe" -z -4 "%%~dpni_png2.png"
"%~dp0Docs\deflopt.exe" "%%~dpni_png2.png"
call :compare "%%~dpni_png1.png" "%%~dpni_png2.png" "%%~fi" "%%~nxi"
)
goto :jpegwork

:pngopt
"%~dp0Docs\optipng.exe" -i0 -zw32k -zc1-9 -zm1-9 -zs0-3 -f0-5 -full -force %1 > %temp%\png.log
for /f "delims==,IDAT tokens=5" %%i in (%temp%\png.log) do (
set f=%%i
)
set f=%f:~1,1%
del %temp%\png.log
"%~dp0Docs\pngout.exe" /k0 /n2 /f%f% %1
goto :jpegwork

:Adam7
echo Adam7
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.png') do (
"%~dp0Docs\prepng.exe" "%%~fi"
"%~dp0Docs\optipng.exe" -i1 "%%~fi"
"%~dp0Docs\pngcrush.exe" -rem alla -brute -reduce "%%~fi" "%%~dpni.tmp"
move /y "%%~dpni.tmp" "%%~fi"
"%~dp0Docs\advpng.exe" -z -4 "%%~fi"
"%~dp0Docs\deflopt.exe" "%%~fi"
"%~dp0Docs\optipng.exe" -zw32k -zc1-9 -zm1-9 -zs0-3 -f0-5 "%%~fi"
"%~dp0Docs\advpng.exe" -z -4 "%%~fi"
"%~dp0Docs\deflopt.exe" "%%~fi"
)

:jpegwork
if not defined jpeg goto:eof
if %jpeg%==1 goto:Optimize
if %jpeg%==2 goto:Progressive
if %jpeg%==3 goto:Progressive_Optimize
goto:eof

:Optimize
echo JPEG - Optimize
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.jpg Images\*.jpeg') do (
"%~dp0Docs\jpegtran.exe" -copy all -optimize "%%~fi" "%%~fi"
"%~dp0Docs\jhead.exe" -dc -de -di -dx -du "%%~fi"
)
goto:eof

:Progressive
echo JPEG - Progressive
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.jpg Images\*.jpeg') do (
"%~dp0Docs\jpegtran.exe" -copy all -progressive "%%~fi" "%%~fi"
"%~dp0Docs\jhead.exe" -dc -de -di -dx -du "%%~fi"
)
goto:eof

:Progressive_Optimize
echo JPEG - Progressive vs. Optimize
for /f "delims=" %%i in ('dir /b /s /a-d Images\*.jpg Images\*.jpeg') do (
"%~dp0Docs\jpegtran.exe" -copy all -progressive "%%~fi" "%%~dpni_pro.tmp"
"%~dp0Docs\jpegtran.exe" -copy all -optimize "%%~fi" "%%~dpni_opt.tmp"
call :compare "%%~dpni_pro.tmp" "%%~dpni_opt.tmp" "%%~fi" "%%~nxi"
"%~dp0Docs\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
Автор: lorents
Дата сообщения: 20.06.2010 20:14
res2001
большое спасибо! Выручили
Автор: ComradG
Дата сообщения: 21.06.2010 09:44
У меня тут собралась коллекция консольных архиваторов и я подумал вот о чем: их же вполне можно вызывать (они прописаны в путях по умолчанию) в пакетном режиме. Например так:
arc.cmd
Код: @echo off
setlocal
if "%1"=="" (
goto:message
) else if "%1"=="/c" (
goto:cabfile
) else if "%1"=="/z" (
goto:zipfile
) else if "%1"=="/?" (
goto:message
)

:cabfile
if "%2"=="" echo Incorrect command line.
if "%4"=="@*" (
1>nul cabarc -r -m %2 N %3 %4
) else (
1>nul cabarc -r -m %2 N %3 %4 %5
)
goto:testing

:zipfile
if "%2"=="" echo Incorrect command line.
1>nul 7za a -r -mx%2 %3 %4 %5
goto:testing

:testing
if %errorlevel%==1 (
echo Some parameters are incorrect.
) else (
echo Completed succesfully.
)
goto:eof

:message
echo Usage: arc ^<type^> level ^<dest_file^> ^<files^> [@list]
echo Type:
echo /c - create a cabinet archive
echo /z - create 7z or zip archive
echo.
echo Level:
echo For CAB files are [LZX:{15..21}^|MSZIP^|NONE]
echo For 7z and ZIP are {5..9}
echo.
echo Examples:
echo arc /c LZX:21 d:\backup\files.cab @list.lst
echo arc /z 5 c:\restore.zip d:\source
echo Note that during compression there is using recurse
echo method by default.
goto:eof

endlocal
exit /b
Автор: wolf0425
Дата сообщения: 21.06.2010 10:50

Цитата:
мне хотелось бы что б вы подкинули идей,
внимательно отнесись к идее поменять свою манеру писать блоки if, у тебя с ними вечные потери последнего esle у блока else if


Код: @echo off
setlocal
if "%2"=="" goto :message
if /i "%1"=="/c" goto:cabfile
if /i "%1"=="/z" goto:zipfile

:message
echo Usage: arc ^<type^> level ^<dest_file^> ^<files^> [@list]
echo Type:
echo /c - create a cabinet archive
echo /z - create 7z or zip archive
echo.
echo Level:
echo For CAB files are [LZX:{15..21}^|MSZIP^|NONE]
echo For 7z and ZIP are {5..9}
echo.
echo Examples:
echo arc /c LZX:21 d:\backup\files.cab @list.lst
echo arc /z 5 c:\restore.zip d:\source
echo Note that during compression there is using recurse
echo method by default.
goto:eof

:cabfile
if "%4"=="@*" (
1>nul cabarc -r -m %2 N %3 %4
) else (
1>nul cabarc -r -m %2 N %3 %4 %5
)
goto:testing

:zipfile
1>nul 7za a -r -mx%2 %3 %4 %5
goto:testing

:testing
if %errorlevel%==1 (
echo Some parameters are incorrect.
) else (
echo Completed succesfully.
)
endlocal
goto:eof

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132

Предыдущая тема: XP не видит второй раздел на съемном USB-HDD


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.