Вопрос или проблема
Этот скрипт должен копировать имя файла и устанавливать его в качестве заголовка (метаданные EXIF) видео. Я получил команду ExifTool с Video Stack Exchange, и она работала, как ожидалось, но теперь я попытался добавить несколько вещей, и скрипт не работает так, как ожидалось.
Что он должен делать:
- Рекурсивно проверять все файлы MP4 на количество.
- Обновлять их заголовок на основе имени файла.
- Показывать количество успешных и неуспешных обновлений.
Я нашел Python-скрипт на Video Stack Exchange, который якобы делает то, что должен, но я пытаюсь сделать это в пакетном файле.
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
:: Инициализация счетчиков для .mp4 файлов
set count=0
set total=0
set error_count=0
:: Подсчет .mp4 файлов в директории и поддиректориях
for /r %%f in (*.mp4) do (
set /a total+=1
)
:: Вывод количества найденных .mp4 файлов
echo Найдено !total! .mp4 файлов.
:: Обработка каждого .mp4 файла и обновление метаданных
for /r %%f in (*.mp4) do (
set /a count+=1
exiftool -overwrite_original "-Title<%%~nf" "%%~f" >nul 2>&1
if !errorlevel! equ 0 (
echo ✅ Обновлено (!count! / !total!) : %%~nxf
) else (
set /a error_count+=1
echo ❌ Ошибка (!error_count!) обновления: %%~nxf
)
)
:: Финальное резюме
echo.
echo Обновление метаданных завершено.
echo Общее количество обновленных файлов: !count!
echo Общее количество ошибок: !error_count!
pause
Ответ или решение
Инструкция по рекурсивному обновлению заголовков всех .mp4 файлов с помощью пакетного файла
В данной статье мы рассмотрим создание пакетного файла для рекурсивного обновления заголовков видеофайлов формата .mp4 на основе их имен. Этот процесс включает несколько ключевых шагов: подсчет файлов, обновление метаданных и вывод статистики о выполнении.
Задача
Ваш сценарий должен:
- Рекурсивно проверить все файлы .mp4 в директории и поддиректориях.
- Обновить их заголовок на основе имени файла.
- Показать количество успешных и неуспешных обновлений.
Решение
Для решения данной задачи мы будем использовать ExifTool
— мощный инструмент для работы с метаданными, который поддерживает обновление заголовков видеофайлов. Вот подробный сценарий, который выполнит поставленные задачи:
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
:: Инициализация счетчиков для .mp4 файлов
set count=0
set total=0
set error_count=0
:: Подсчет .mp4 файлов в директории и поддиректориях
for /r %%f in (*.mp4) do (
set /a total+=1
)
:: Выводим количество найденных .mp4 файлов
echo Найдено !total! .mp4 файлов.
:: Обработка каждого .mp4 файла и обновление метаданных
for /r %%f in (*.mp4) do (
set /a count+=1
exiftool -overwrite_original "-Title<%%~nf" "%%~f" >nul 2>&1
if !errorlevel! equ 0 (
echo ✅ Обновлено (!count! / !total!) : %%~nxf
) else (
set /a error_count+=1
echo ❌ Ошибка (!error_count!) при обновлении: %%~nxf
)
)
:: Итоговая сводка
echo.
echo Обновление метаданных завершено.
echo Обновлено файлов: !count!
echo Ошибок: !error_count!
pause
Пояснение кода
-
Настройка кодовой страницы (
chcp 65001
): Устанавливает кодировку UTF-8, что позволяет корректно обрабатывать файлы с не-ASCII символами. -
Счетчики:
count
: считает успешно обработанные файлы.total
: общее количество найденных файлов.error_count
: количество файлов, при обновлении которых произошла ошибка.
-
Рекурсивный подсчет файлов: Цикл
for /r
рекурсивно проходит по всем подкаталогам и находит файлы с расширением .mp4. -
Обновление заголовка: Используется команда
exiftool
для замены заголовка видео на имя файла. Важно использовать-overwrite_original
для перезаписи существующих метаданных. -
Отображение результатов: После обработки каждого файла, скрипт выводит результат обработки, включая количество успешно обновленных файлов и ошибок.
-
Итоговая сводка: В конце скрипт выводит общее количество обновлений и количество ошибок.
Заключение
Этот пакетный файл предоставляет простое и эффективное решение для рекурсивного обновления заголовков видеофайлов в формате .mp4. Использование ExifTool
обеспечивает высокий уровень надежности и функциональности, что делает данный сценарий полезным инструментом для управления метаданными мультимедийных файлов. Вы можете легко адаптировать этот код для других типов файлов или метаданных, внедряя свои улучшения и расширения для удовлетворения конкретных нужд.