Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
AccoRd
4 / 4 / 0
Регистрация: 19.10.2010
Сообщений: 66
1

Сообщение об ошибке "Непредвиденное появление: B." при выполнении команды "FOR %B IN (*) DO ..."

02.08.2014, 23:10. Просмотров 1582. Ответов 7
Метки нет (Все метки)

бегло прочитал Циклические операции и примеры (команда FOR) * [Статья]
не нашел подходящей инфы
пишу команду
Bash
1
for %В in (*) do (ffmpeg -i %B -acodec libmp3lame -vcodec libx264 -deinterlace ed_%B.mp4)
он мне пишет
Код
>(ffmpeg -i %B -acodec libmp3lame -vcodec libx264 -deinterlace ed_%B.mp4 )
Непредвиденное появление: B.
при этом, если написать
Bash
1
for %В in (*) do (echo %B)
, то выводится имя файла.
в чем проблема-то, не понимаю?.. прошу подсказать. спасибо
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.08.2014, 23:10
Ответы с готовыми решениями:

При выполнении батника появляется сообщение об ошибке "Непредвиденное появление: (0."
Добрый день, вот код, при выполнении батника выскакивает вот это: Непредвиденное появление: (0....

Сообщение об ошибке "Непредвиденное появление: Y."
Здравствуйте! У меня возникла проблема при создании bat файла. Я делаю лабораторную работу:...

Сообщение об ошибке "Непредвиденное появление: |."
Всем привет! Не буду мудрить напишу здесь, бо оно в тему. есть комманда ping 192.168.0.18 -n 1...

Сообщение об ошибке "Сервер RPC недоступен" при выполнении команды TASKLIST с ключом /S
Здравствуйте. Возникла следующая проблема: нужно вывести на экран список выполняющихся задач,...

Ошибка "Непредвиденное появление" при использовании оператора условного выполнения команд
Приветствую. Есть некоторый код, который правильно выполняется, но вот функция :EXIT работает...

7
Eva Rosalene
Ladybug
4129 / 1602 / 305
Регистрация: 06.01.2013
Сообщений: 4,194
Завершенные тесты: 2
02.08.2014, 23:44 2
AccoRd, при записи команд в батник символ % в for нужно удвоить.
Bash
1
for %%В in (*) do (ffmpeg -i "%%~B" -acodec libmp3lame -vcodec libx264 -deinterlace "ed_%%~B.mp4")
1
AccoRd
4 / 4 / 0
Регистрация: 19.10.2010
Сообщений: 66
03.08.2014, 20:39  [ТС] 3
пасиба, конечно, но не робит
если в консоли пишу, то результат тот-же:
Код
Непредвиденное появление: %%В
а батник с таким кодом выводит
Код
>(ffmpeg -i "%~B" -acodec libmp3lame -vcodec libx264 -deinterlace "ed_%~B.mp4" )
ffmpeg естественно ругается
Код
%~B: No such file or directory
Добавлено через 2 часа 38 минут
не знаю, можно-ли сделать рабочий вариант с for, но вот с forfile получилось то, что я хотел
Bash
1
forfiles /c "cmd /c ffmpeg -i @file -acodec libmp3lame -vcodec libx264 -deinterlace recoded_@fname.mp4"
мог напутать с кавычками, на данный момент конвертится, решил уже не останавливать запускаю из консоли, не батник. из батника даже не пробовал
0
Dragokas
Эксперт WindowsАвтор FAQ
17105 / 7160 / 861
Регистрация: 25.12.2011
Сообщений: 10,955
Записей в блоге: 16
04.08.2014, 10:23 4
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Цитата Сообщение от AccoRd Посмотреть сообщение
если в консоли пишу, то результат тот-же:
Все наоборот.
В консоли нужно писать с одним %. А в батнике с двумя.
1
04.08.2014, 10:23
AccoRd
4 / 4 / 0
Регистрация: 19.10.2010
Сообщений: 66
04.08.2014, 21:28  [ТС] 5
когда пишу в консоли с одним процентом результат аналогичный запуску из батника с двумя процентами
Цитата Сообщение от AccoRd Посмотреть сообщение
а батник с таким кодом выводит
Код
>(ffmpeg -i "%~B" -acodec libmp3lame -vcodec libx264 -deinterlace "ed_%~B.mp4" )
0
Dragokas
Эксперт WindowsАвтор FAQ
17105 / 7160 / 861
Регистрация: 25.12.2011
Сообщений: 10,955
Записей в блоге: 16
04.08.2014, 21:42 6
Таксс. Давайте запустим эти батники.
Какие результаты получите?
0
Вложения
Тип файла: zip test.zip (687 байт, 17 просмотров)
AccoRd
4 / 4 / 0
Регистрация: 19.10.2010
Сообщений: 66
09.08.2014, 21:42  [ТС] 7
почти убедили. выводится уже нормальная строка
Bash
1
2
3
4
ffmpeg -i "C:\path\test.bat" -acodec libmp3lame -vcodec libx264 -deinterlace "ed_test.bat.mp4"
ffmpeg -i "C:\path\test2.bat" -acodec libmp3lame -vcodec libx264 -deinterlace "ed_test2.bat.mp4"
ffmpeg -i "C:\path\test3.bat" -acodec libmp3lame -vcodec libx264 -deinterlace "ed_test3.bat.mp4"
Для продолжения нажмите любую клавишу . . .
но вот ffmpeg не запускается. echo, он и есть echo
0
Dragokas
Эксперт WindowsАвтор FAQ
17105 / 7160 / 861
Регистрация: 25.12.2011
Сообщений: 10,955
Записей в блоге: 16
09.08.2014, 21:58 8
В каком из вариантов запускается нормальная строка?
ffmpeg где находится? Должен лежать рядом с батником. Название точно именно такое?
0
09.08.2014, 21:58
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.08.2014, 21:58

"tokens=*" "съедает" одну строчку при обработке вывода результата выполнения команды ping :)
Друзья, нашел батничек для пинга узла и вывода инфо в файл, кое что подправил под себя, но остался...

Подавление запроса "... это имя файла или каталога?" при выполнении команды XCOPY
Простое копирование, результатом которого должно быть другое имя файла. @echo off xcopy /y...

Ошибка «Значение параметра "/C" не может содержать более 253 знаков» при выполнении команды FORFILES
Всем привет, еще раз, помогите пожалуйста разбить строку: forfiles /p %$drive% /M *.* /C "cmd /c...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.