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

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

 

Ветеран


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

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


Цитата Sisin:
Помогло. Заменил на квадратные. Работает. А чем это вызвано?? »
Тем, что в пакетных файлах отсутствует понятие строковой лексемы как отдельной сущности, потому вот здесь:
Код: Выделить весь код
: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
переменная %0 разворачивается «как есть», и наличествующие в имени пакетного файла круглые скобки сводят лексический анализатор с ума — он начинает воспринимать закрывающую круглую скобку из имени файла как закрывающую скобку в наборе «in (…) do …».

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



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

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


Аватара для Sisin

Старожил


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

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


Короче, погонял пакетный файл. Нормально работает если название без пробелов.
Если с пробелами или знаками, то ffmpeg просто начинает конвертирование без учета указанных параметров.

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


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


Ветеран


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

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


Цитата Sisin:
При детальном изучении квадратная скобка тоже косячит. Пакетный файл работает, но параметры не считываются. »
Может быть, я детально код не смотрел.

P.S. Вот за такие вещи я и не люблю пакетные файлы и PowerShell.

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



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




 
Переход