CMD/BAT - [решено] Поиск файла с последующим созданием папки

Ответить
Аватара пользователя
Kyja

CMD/BAT - [решено] Поиск файла с последующим созданием папки

Сообщение Kyja »

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

Сейчас возникла такая задача решения которой не могу понять сам буду очень признателен за помощь



Подскажите как сделать следующие



1. Найти первый фаил в папке C:\test с расширением mp4



2. Создать папку равную имени найденного mp4 файла (C:\test\name)



3. запустить команду

ffmpeg -i 123.mp4 -vf scale=320:240 -c:v libx264 -preset slow -crf 31 \name\123.mp4 -r 1 -ss 00:00:04 -t 00:00:01 -f image2 4\images%05d.png

где 123.mp4 равен имени найденного файла

где \name\123.mp4 равен созданной папке\имя найденного файла



4. дожидаться появления в папке созданной в шаге 2 файла формата .png



5. удалить найденный в шаге 1 mp4 фаил



6. Ожидать/перейти к следующему mp4 файлу и начать весь цикл заново



Заранее спасибо
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Поиск файла с последующим созданием папки

Сообщение Iska »

Цитата Kyja:



ffmpeg -i 123.mp4 -vf scale=320:240 -c:v libx264 -preset slow -crf 31 4\32212.mp4 -r 1 -ss 00:00:04 -t 00:00:01 -f image2 4\images%05d.png

где 123.mp4 равен имени найденного файла

где C:\test\name\32212.mp4 равен созданной папке\имя найденного файла
CMD/BAT - [решено] Поиск файла с последующим созданием папки




В команде нет «C:\test\name\32212.mp4». Проверьте её.
Аватара пользователя
Kyja

Re: CMD/BAT - [решено] Поиск файла с последующим созданием папки

Сообщение Kyja »

Извиняюсь поставил корректный пример



3. запустить команду

ffmpeg -i 123.mp4 -vf scale=320:240 -c:v libx264 -preset slow -crf 31 \name\123.mp4 -r 1 -ss 00:00:04 -t 00:00:01 -f image2 4\images%05d.png

где 123.mp4 равен имени найденного файла

где \name\123.mp4 равен созданной папке\имя найденного файла
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Поиск файла с последующим созданием папки

Сообщение Iska »

Цитата Kyja:



Извиняюсь поставил корректный пример

3. запустить команду

ffmpeg -i 123.mp4 -vf scale=320:240 -c:v libx264 -preset slow -crf 31 \name\32212.mp4 -r 1 -ss 00:00:04 -t 00:00:01 -f image2 4\images%05d.png

где 123.mp4 равен имени найденного файла

где \name\32212.mp4 равен созданной папке\имя найденного файла
CMD/BAT - [решено] Поиск файла с последующим созданием папки




Понятней не стало. Почему в одной и той же команде имя найденного файла сначала одно, затем тут же — другое?





Итак, давайте уточним ещё раз.




Цитата:



1. Найти первый фаил в папке C:\test с расширением mp4



Например, первым нашли файл C:\test\bla-bla-bla.mp4.




Цитата:



2. Создать папку равную имени найденного mp4 файла (C:\test\name)



Создаём каталог C:\test\bla-bla-bla.




Цитата:



3. запустить команду

ffmpeg -i 123.mp4 -vf scale=320:240 -c:v libx264 -preset slow -crf 31 \name\32212.mp4 -r 1 -ss 00:00:04 -t 00:00:01 -f image2 4\images%05d.png

где 123.mp4 равен имени найденного файла

где \name\32212.mp4 равен созданной папке\имя найденного файла



Исполняем команду:



Код:

Код: Выделить всё

ffmpeg.exe -i bla-bla-bla.mp4 -vf scale=320:240 -c:v libx264 -preset slow -crf 31 \bla-bla-bla\bla-bla-bla.mp4 -r 1 -ss 00:00:04 -t 00:00:01 -f image2 4\images%05d.png


Цитата:



4. дожидаться появления в папке созданной в шаге 2 файла формата .png



Зачем ждать появления файла? Пока не отработает ffmpeg.exe — управление в пакетный файл не вернётся.




Цитата:



5. удалить найденный в шаге 1 mp4 фаил



Удаляем файл C:\test\bla-bla-bla.mp4.




Цитата:



6. Ожидать/перейти к следующему mp4 файлу и начать весь цикл заново



Переходим к обработке следующего файл *.mp4.



Так?
Аватара пользователя
Kyja

Re: CMD/BAT - [решено] Поиск файла с последующим созданием папки

Сообщение Kyja »

Цитата Iska:



Зачем ждать появления файла? Пока не отработает ffmpeg.exe — управление в пакетный файл не вернётся.
CMD/BAT - [решено] Поиск файла с последующим созданием папки




Не знал этого момента да тогда конечно ждать появления не надо.



Да все совершенно верно как Вы описали
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Поиск файла с последующим созданием папки

Сообщение Iska »

Код:

Код: Выделить всё

@echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFolder=c:\name
pushd "%sSourceFolder%" && (
	for %%i in ("*.mp4") do (
		echo [%%~i]
		2>nul md "%%~ni"
		ffmpeg.exe -i %%~i -vf scale=320:240 -c:v libx264 -preset slow -crf 31 \%%~ni\%%~i -r 1 -ss 00:00:04 -t 00:00:01 -f image2 4\images%05d.png
	)
	popd
) || (
	echo Can't find source folder [%sSourceFolder%].
	exit /b 1
)
endlocal
exit /b 0

Но работать не работает, разбирайтесь с параметрами команды ffmpeg (мне разбираться методом обратной инженерии, что и как именно Вы хотели получить, и как надо было делать на самом деле, желания нет).
Ответить

Вернуться в «Скриптовые языки администрирования Windows»