|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Комментарий внутри цикла FOR |
|
CMD/BAT - Комментарий внутри цикла FOR
|
Старожил Сообщения: 345 |
Как сделать, чтобы комментарий в цикле FOR не мешал работе:
т.е. я не хочу удалять строки, а лишь убрать из цикла для моего удобства. |
|
Отправлено: 11:21, 18-12-2017 |
Старожил Сообщения: 345
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Последний раз редактировалось Sisin, 18-12-2017 в 14:07. Отправлено: 13:57, 18-12-2017 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Sisin, ?!
|
Отправлено: 14:15, 18-12-2017 | #12 |
Старожил Сообщения: 345
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 14:22, 18-12-2017 | #13 |
Ветеран Сообщения: 2728
|
Профиль | Отправить 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 |
Старожил Сообщения: 345
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
|
|
Последний раз редактировалось Sisin, 19-12-2017 в 12:34. Отправлено: 12:09, 19-12-2017 | #15 |
Старожил Сообщения: 345
|
Профиль | Отправить 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
|
Профиль | Отправить PM | Цитировать |
Отправлено: 13:35, 19-12-2017 | #17 |
Старожил Сообщения: 345
|
Профиль | Отправить PM | Цитировать |
Отправлено: 13:45, 19-12-2017 | #18 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Sisin, попробуйте не использовать круглых скобок в имени пакетного файла.
|
Отправлено: 14:12, 19-12-2017 | #19 |
Старожил Сообщения: 345
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 14:27, 19-12-2017 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|