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

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

Ответить
Настройки темы
CMD/BAT - Комментарий внутри цикла FOR

Аватара для Sisin

Старожил


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

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


Изменения
Автор: Sisin
Дата: 18-12-2017
Как сделать, чтобы комментарий в цикле FOR не мешал работе:
Код: Выделить весь код
for %%a in (*.mkv;*.mp4;*.wmv) do (
ffmpeg -i "%%~a" ^
-c:v copy ^
-c:a copy ^
:: Начало обрезки:
:: -ss 00:08:38 ^
:: Продолжительность обрезки:
:: -t 00:05:00 ^
"fix\%%~na.mkv"
)
т.е. я не хочу удалять строки, а лишь убрать из цикла для моего удобства.

Отправлено: 11:21, 18-12-2017

 

Аватара для Sisin

Старожил


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

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


Цитата Iska:
попробуйте, может сгодится. »

Последний раз редактировалось Sisin, 18-12-2017 в 14:07.


Отправлено: 13:57, 18-12-2017 | #11



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

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


Ветеран


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

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


Sisin, ?!

Отправлено: 14:15, 18-12-2017 | #12


Аватара для Sisin

Старожил


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

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


Цитата Iska:
Sisin, ?! »
Глупость написал. Думал можно каретке указать не читать следующую строку.

Отправлено: 14:22, 18-12-2017 | #13


Ветеран


Contributor


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

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


Цитата Sisin:
А можно как-то извратиться »
Вам надо извращений? Их есть у меня! :)
Код: Выделить весь код
@Echo Off
cls
SetLocal EnableExtensions EnableDelayedExpansion

Call :Parameters ":Inmkvmerge" "Pmkv"
For %%a in (fix\*.mkv) do Echo mkvmerge -o "fixed\%%~nxa"%Pmkv% "%%~a"

Call :Parameters ":Inffmpeg" "Pffm"
for %%a in (*.mkv;*.mp4;*.wmv) Do Echo ffmpeg -i "%%~a"%Pffm% "fix\%%~na.mkv"

pause
GoTo :Eof

:Parameters
	For /F "usebackq tokens=1* delims=:" %%a In (`"FINDSTR /B /L /I /N /C:%1 "%~dpnx0""`) DO Set /A Nbeg=%%a
	Set "%~2="
	For /F "usebackq tokens=1,* delims=~" %%a In (`"more +%Nbeg% "%~dpnx0""`) DO (
		If /I "%%a"=="GoTo :Eof" GoTo :Eof
		If Not "%%a"==":" Set "%~2=!%~2! %%a"
	)
GoTo :Eof

:Inffmpeg

-c:v copy
-c:a copy
:~ Начало обрезки:
:~ -ss 00:08:38
:~ Продолжительность обрезки:
:~-t 00:05:00

GoTo :Eof

:Inmkvmerge

:~Настройка по умолчанию для 1 видео и 1 аудио дорожек
:~ Распознавание дорожек:
:~-d 0 -a 1,2 -s 3
-d 0 a 1 -S -T
--track-name 0:""
--track-name 1:""
:~--track-name 2:""
--language 0:und
--language 1:rus
:~--language 2:rus
--default-track 0:yes
--default-track 1:yes
:~--default-track 2:no
--forced-track 0:no
--forced-track 1:no
:~--forced-track 2:no
--compression 0:none
--compression 1:none
:~--compression 2:none
--title ""
:~ Очередность дорожек:
:~--track-order 0:0,0:1,0:2,0:3
--track-order 0:0,0:1
--no-global-tags
--no-chapters
--disable-track-statistics-tags

GoTo :Eof
Идея работы:
Перечислить все параметры построчно в отдельной секции и на их основе сформировать строку параметров.
Я придумал для секции способ комментирования: символы :~
Сначала вызываем формирование параметров, а затем уже цикл по вашим файлам.
Echo перед вызовом Ваших программ написал для отладки, так как их у меня нет.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

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

Отправлено: 20:22, 18-12-2017 | #14


Аватара для Sisin

Старожил


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

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


Цитата megaloman:
Вам надо извращений? Их есть у меня! »
Сударь, Вы знаете толк в извращениях)))

Последний раз редактировалось Sisin, 19-12-2017 в 12:34.


Отправлено: 12:09, 19-12-2017 | #15


Аватара для Sisin

Старожил


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

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


Подправленный и работающий
Код: Выделить весь код
@Echo Off
md fix
cls
SetLocal EnableExtensions EnableDelayedExpansion

Call :Parameters ":Inffmpeg" "Pffm"
for %%a in (*.mkv;*.mp4;*.wmv) do ffmpeg -i "%%~a"%Pffm% "fix\%%~na.mkv"

Call :Parameters ":Inmkvmerge" "Pmkv"
for %%a in (fix\*.mkv) do mkvmerge -o "fixed\%%~nxa"%Pmkv% "%%~a"

del /q fix
rd /q fix

pause
GoTo :Eof

:Parameters
	For /F "usebackq tokens=1* delims=:" %%a In (`"FINDSTR /B /L /I /N /C:%1 "%~dpnx0""`) DO Set /A Nbeg=%%a
	Set "%~2="
	For /F "usebackq tokens=1,* delims=~" %%a In (`"more +%Nbeg% "%~dpnx0""`) DO (
		If /I "%%a"=="GoTo :Eof" GoTo :Eof
		If Not "%%a"==":" Set "%~2=!%~2! %%a"
	)
GoTo :Eof

:Inffmpeg

-c:v copy
-c:a copy
:~ Начало обрезки:
:~ -ss 00:08:38
:~ Продолжительность обрезки:
:~ -t 00:05:00

GoTo :Eof

:Inmkvmerge

:~ Настройка по умолчанию для 1 видео и 1 аудио дорожек
:~ Распознавание дорожек:
:~ -d 0 -a 1,2 -s 3
-d 0 -a 1 -S -T
--track-name 0:""
--track-name 1:""
:~ --track-name 2:""
--language 0:und
--language 1:rus
:~ --language 2:rus
--default-track 0:yes
--default-track 1:yes
:~ --default-track 2:no
--forced-track 0:no
--forced-track 1:no
:~ --forced-track 2:no
--compression 0:none
--compression 1:none
:~ --compression 2:none
--title ""
:~ Очередность дорожек:
:~ --track-order 0:0,0:1,0:2,0:3
--track-order 0:0,0:1
--no-global-tags
--no-chapters
--disable-track-statistics-tags

GoTo :Eof


Есть одно НО, я не могу назвать файл bat как мне надо, иначе ошибка.
Можно ли как-то выкрутиться??

Отправлено: 13:15, 19-12-2017 | #16


Ветеран


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

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


Цитата Sisin:
я не могу назвать файл bat как мне надо »
А как Вам надо?

Цитата Sisin:
иначе ошибка. »
Какая?

Отправлено: 13:35, 19-12-2017 | #17


Аватара для Sisin

Старожил


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

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


Цитата Iska:
А как Вам надо? »
1 - MKV, MP4, WMV to MKV (COPY2).bat

Цитата Iska:
Какая? »
Непредвиденное появление: .bat""'>.

Отправлено: 13:45, 19-12-2017 | #18


Ветеран


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

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


Sisin, попробуйте не использовать круглых скобок в имени пакетного файла.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:12, 19-12-2017 | #19


Аватара для Sisin

Старожил


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

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


Цитата Iska:
Sisin, попробуйте не использовать круглых скобок в имени пакетного файла. »
Помогло. Заменил на квадратные. Работает. А чем это вызвано??

Отправлено: 14:27, 19-12-2017 | #20



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как работать с переменной внутри цикла FOR? alex_past Скриптовые языки администрирования Windows 42 28-11-2018 16:19
CMD/BAT - переменная меняется внутри цикла for, последовательно принимая значения имен файлов islily Скриптовые языки администрирования Windows 18 02-12-2014 22:14
CMD/BAT - Переменная внутри цикла VAbramyak Скриптовые языки администрирования Windows 9 06-06-2014 15:59
CMD/BAT - [решено] %errorlevel% внутри цикла всегда 0 apozlevich Скриптовые языки администрирования Windows 5 22-11-2013 18:55
CMD/BAT - [решено] Условия внутри цикла for blackmane Скриптовые языки администрирования Windows 4 02-08-2012 10:01




 
Переход