Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Поиск файла с последующим созданием папки (http://forum.oszone.net/showthread.php?t=336131)

Kyja 11-08-2018 01:03 2825896

Поиск файла с последующим созданием папки
 
Здравствуйте, скажу сразу все мои 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 11-08-2018 02:07 2825898

Цитата:

Цитата 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 равен созданной папке\имя найденного файла »

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

Kyja 11-08-2018 11:28 2825916

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

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 11-08-2018 12:03 2825922

Цитата:

Цитата 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 равен созданной папке\имя найденного файла »

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


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

Цитата:

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 11-08-2018 12:17 2825925

Цитата:

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

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

Да все совершенно верно как Вы описали

Iska 11-08-2018 12:37 2825928

Код:

@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 (мне разбираться методом обратной инженерии, что и как именно Вы хотели получить, и как надо было делать на самом деле, желания нет).

Kyja 11-08-2018 13:05 2825931

Огромное спасибо все работает!


Время: 13:44.

Время: 13:44.
© OSzone.net 2001-