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

Компьютерный форум 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

 

Ветеран


Contributor


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

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


Sisin, имхо, двоеточие- это метка, а комментарий начинается rem c пробелом

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

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

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



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

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


Аватара для Sisin

Старожил


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

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


Цитата megaloman:
Sisin, имхо, двоеточие- это метка, а комментарий начинается rem c пробелом »
с rem тоже не работает.

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


Ветеран


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

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


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

Последний раз редактировалось Iska, 18-12-2017 в 11:48. Причина: Заменил «не будут» на «не могут».

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

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


Аватара для Sisin

Старожил


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

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


А можно как-то извратиться, чтобы аргументы для ffmpeg.exe передавались построчно, но так, чтобы между строчек можно было бы вставлять комментарии???

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


Ветеран


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

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


Sisin, это не между строчек, понимаете? Это внутри одной строки. Никак Вы не вставите комментарий внутрь команды.

Я так понимаю, Вы комментарии вставляете не из любви к искусству, а для памяти, дабы не запоминать имена параметров, и за что каждый из них отвечает, да? Тогда предлагаю воспользоваться, например, следующим способом:
Скрытый текст
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

rem Начало обрезки:
set sStartTime=00:08:38

rem Продолжительность обрезки:
set sPeriod=00:05:00

for %%a in (*.mkv;*.mp4;*.wmv) do (
	ffmpeg.exe ^
		-i "%%~a" ^
		-c:v copy ^
		-c:a copy ^
		-ss %sStartTime% ^
		-t %sPeriod% ^
		"fix\%%~na.mkv"
)

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

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


Аватара для Sisin

Старожил


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

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


Цитата Iska:
Я так понимаю, Вы комментарии вставляете не из любви к искусству, а для памяти, дабы не запоминать имена параметров, и за что каждый из них отвечает, да? »
Да, но дело в том, что два параметра я могу запомнить (я их указал в качестве примера для ffmpeg) )))

Вот другой НЕРАБОТАЮЩИЙ пример:
Пример

Код: Выделить весь код
for %%a in (fix\*.mkv) do (
::Настройка по умолчанию для 1 видео и 1 аудио дорожек
mkvmerge -o "fixed\%%~nxa" ^
rem Распознавание дорожек:
rem -d 0 -a 1,2 -s 3
-d 0 a 1 -S -T ^
--track-name 0:"" ^
--track-name 1:"" ^
rem--track-name 2:"" ^
--language 0:und ^
--language 1:rus ^
rem --language 2:rus ^
--default-track 0:yes ^
--default-track 1:yes ^
rem --default-track 2:no ^
--forced-track 0:no ^
--forced-track 1:no ^
rem --forced-track 2:no ^
--compression 0:none ^
--compression 1:none ^
rem --compression 2:none ^
--title "" ^
rem Очередность дорожек:
rem --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 ^
"%%~a"
)

Мне удобнее было бы не удалять строчки, а отключать.
Сейчас у меня комментарии расположены отдельно и приходится их переносить с места на место.
Так сейчас
Код: Выделить весь код
for %%a in (fix\*.mkv) do (
::Настройка по умолчанию для 1 видео и 1 аудио дорожек
mkvmerge -o "fixed\%%~nxa" ^
-d 0 a 1 -S -T ^
--track-name 0:"" ^
--track-name 1:"" ^
--language 0:und ^
--language 1:rus ^
--default-track 0:yes ^
--default-track 1:yes ^
--forced-track 0:no ^
--forced-track 1:no ^
--compression 0:none ^
--compression 1:none ^
--title "" ^
--track-order 0:0,0:1 ^
--no-global-tags ^
--no-chapters ^
--disable-track-statistics-tags ^
"%%~a"
)
rem -d 0 -a 1,2 -s 3
rem -d 0 a 1 -S -T
rem --track-name 0:""
rem --track-name 1:""
rem--track-name 2:""
rem --language 0:und
rem --language 1:rus
rem --language 2:rus
rem --default-track 0:yes
rem --default-track 1:yes
rem --default-track 2:no
rem --forced-track 0:no
rem --forced-track 1:no
rem --forced-track 2:no
rem --compression 0:none
rem --compression 1:none
rem --compression 2:none
rem --title ""
rem --track-order 0:0,0:1,0:2,0:3
rem --track-order 0:0,0:1
rem --no-global-tags
rem --no-chapters
rem --disable-track-statistics-tags

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


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


Ветеран


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

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


Цитата Sisin:
Мне удобнее было бы не удалять строчки, а отключать. »
Как я Вас понимаю . Но увы, фокус не удастся. Максимум, что Вы можете сделать — формировать командную строку отдельно, наподобие:
Скрытый текст
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sArguments=

rem Начало обрезки:
set sArguments=%sArguments% -ss 00:08:38

rem Продолжительность обрезки:
set sArguments=%sArguments% -t 00:05:00

for %%a in (*.mkv;*.mp4;*.wmv) do (
	ffmpeg.exe ^
		-i "%%~a" ^
		-c:v copy ^
		-c:a copy ^
		%sArguments% ^
		"fix\%%~na.mkv"
)

endlocal
exit /b 0

и при нужде Вы просто комментируете/раскомментируете тот или иной аргумент.

P.S. Может, Вам проще будет взять одну из многочисленных GUI-оболочек для ffmpeg.exe и не мучаться, не?!

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


Аватара для Sisin

Старожил


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

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


Цитата Iska:
P.S. Может, Вам проще будет взять одну из многочисленных GUI-оболочек для ffmpeg.exe и не мучаться, не?! »
Просто полный скрипт еще больше, а в нем используется 4 программы. GUI-оболочка не поможет, вернее поможет, но их будет 4, плюс ненужные телодвижения.

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


Ветеран


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

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


Ну, тогда так:
Цитата Iska:
формировать командную строку отдельно, »
попробуйте, может сгодится.

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



Компьютерный форум 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




 
Переход