Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Сделать скрипт для конвертации графики

Ответить
Настройки темы
CMD/BAT - [решено] Сделать скрипт для конвертации графики

Пользователь


Сообщения: 87
Благодарности: 4

Профиль | Отправить PM | Цитировать


Здравствуйте, у меня вопрос скорее теоретический. Дело в том что меня укусил Индус! Я мало по малу вожусь с графикой и иногда надо просто быстро сконвертировать пару картинок. В таком случае я использую драг анд дроп. И скрипт для этого написать дело несложное проблема в том что он фу!
Скрытый текст
Код: Выделить весь код
@echo off
>nul chcp 65001
cd /d %~dp0
set Input=%*%
if ["%1"] neq [""] goto :skip
set Input=E:\CMD\WebP\unnamed-F17.png E:\CMD\WebP\unnamed-F7.png E:\CMD\WebP\unnamed-F18.png
:skip
SetLocal EnableExtensions EnableDelayedExpansion

for /f "tokens=1-24 delims= " %%a in ('echo %Input%') do (
if ["%%a"] neq [""] ( .\bin\cwebp "%%a" -o "%%~na.webp" ) else goto :eof
if ["%%b"] neq [""] ( .\bin\cwebp "%%b" -o "%%~nb.webp" ) else goto :eof
if ["%%c"] neq [""] ( .\bin\cwebp "%%c" -o "%%~nc.webp" ) else goto :eof
if ["%%d"] neq [""] ( .\bin\cwebp "%%d" -o "%%~nd.webp" ) else goto :eof
if ["%%e"] neq [""] ( .\bin\cwebp "%%e" -o "%%~ne.webp" ) else goto :eof
if ["%%f"] neq [""] ( .\bin\cwebp "%%f" -o "%%~nf.webp" ) else goto :eof
if ["%%g"] neq [""] ( .\bin\cwebp "%%g" -o "%%~ng.webp" ) else goto :eof
if ["%%h"] neq [""] ( .\bin\cwebp "%%h" -o "%%~nh.webp" ) else goto :eof
if ["%%i"] neq [""] ( .\bin\cwebp "%%i" -o "%%~ni.webp" ) else goto :eof
if ["%%j"] neq [""] ( .\bin\cwebp "%%j" -o "%%~nj.webp" ) else goto :eof
if ["%%k"] neq [""] ( .\bin\cwebp "%%k" -o "%%~nk.webp" ) else goto :eof
if ["%%l"] neq [""] ( .\bin\cwebp "%%l" -o "%%~nl.webp" ) else goto :eof
if ["%%m"] neq [""] ( .\bin\cwebp "%%m" -o "%%~nm.webp" ) else goto :eof
if ["%%n"] neq [""] ( .\bin\cwebp "%%n" -o "%%~nn.webp" ) else goto :eof
if ["%%o"] neq [""] ( .\bin\cwebp "%%o" -o "%%~no.webp" ) else goto :eof
if ["%%p"] neq [""] ( .\bin\cwebp "%%p" -o "%%~np.webp" ) else goto :eof
if ["%%q"] neq [""] ( .\bin\cwebp "%%q" -o "%%~nq.webp" ) else goto :eof
if ["%%r"] neq [""] ( .\bin\cwebp "%%r" -o "%%~nr.webp" ) else goto :eof
if ["%%s"] neq [""] ( .\bin\cwebp "%%s" -o "%%~ns.webp" ) else goto :eof
if ["%%t"] neq [""] ( .\bin\cwebp "%%t" -o "%%~nt.webp" ) else goto :eof
if ["%%u"] neq [""] ( .\bin\cwebp "%%u" -o "%%~nu.webp" ) else goto :eof
if ["%%v"] neq [""] ( .\bin\cwebp "%%v" -o "%%~nv.webp" ) else goto :eof
if ["%%w"] neq [""] ( .\bin\cwebp "%%w" -o "%%~nw.webp" ) else goto :eof
)
pause>nul

Как видите я написал много излишнего кода. Поэтому прошу помочь и подсказать как сделать всё хотя бы компактнее.
Что надо:
1) Получить в качестве аргументов список файлов.
2) Один за одним их обработать ( У меня не получилось создать переменную с переносами строки)
1.файл
2.файл
и т.д.
то есть имеем: 1.файл 2.файл
делаем:
1.файл
2.файл
пуляем в for
В дальнейшем собираюсь продолжать писать подобные скрипты и нужны знания. Поэтому теоретические советы горячо приветствуются. Спасибо!

Отправлено: 17:23, 09-01-2018

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Patroklos:
Что надо: »
Не надо. Здесь Вы излагаете выбранное Вами решение задачи. Что надо в реальности: изложить саму Вашу задачу. Словами, чтобы не пытаться разбираться в выложенном Вами коде.

То есть, Вам нужно подробно изложить словами вот это:
Цитата Patroklos:
надо просто быстро сконвертировать пару картинок »

Отправлено: 17:56, 09-01-2018 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 87
Благодарности: 4

Профиль | Отправить PM | Цитировать


Я не понял вашей реакции но попробую определить задачу более узко.
Мне нужно создать скрипт который будет конвертировать графику из png в webp.
Я беру и кидаю на значок bat произвольное количество файлов png и к ним по очереди применяется команда
Код: Выделить весь код
.\bin\cwebp.exe "file.png" -o "file.webp"

Отправлено: 19:39, 09-01-2018 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Относительная ссылка в:
Цитата Patroklos:
.\bin\cwebp.exe »
разве тут уместна?

Общий принцип таков:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sFile=%~1

if not defined sFile (
	echo Usage: %~nx0 ^<Source file^> [^<Source file^> ...]
	exit /b 1
)

:Repeat
	".\bin\cwebp.exe" "%~1" -o "%~n1.webp"
	shift
	if "%~1" neq "" goto :Repeat

endlocal
exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:51, 09-01-2018 | #4


Пользователь


Сообщения: 87
Благодарности: 4

Профиль | Отправить PM | Цитировать


Спасибо, работает отлично. Крутое решение и всего в несколько строк.

Отправлено: 20:29, 09-01-2018 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Сделать скрипт для конвертации графики

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Скрипт по конвертации графики hp1nt0 Скриптовые языки администрирования Windows 5 23-01-2017 20:40
Помогите сделать скрипт AutoIt для настройка сетевой карты в Windows 7 AlexM22204 AutoIt 1 30-07-2012 12:21
CMD/BAT - Помогите сделать скрипт для обновления NOD'а Oleg48 Скриптовые языки администрирования Windows 2 02-11-2010 23:53
Adobe показала инструмент для конвертации Flash в HTML5 OSZone News Новости информационных технологий 0 29-10-2010 13:30
нужен скрипт для добавления сайта в избранное и сделать его стартовой страницей Denis Shutka Вебмастеру 2 30-01-2005 11:03




 
Переход