Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 16.11.2020
Сообщений: 11

Установка комментария и даты кодирования из имён jpg и mp4

01.02.2021, 14:20. Показов 2281. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста. Есть файлы формата jpg и mp4 вида 2021-10-21-20h32m44.mp4 и 2021-10-21-20-19h-23m-44.jpg
Название файлов jpg берется из даты съемки через total commander. Файлы mp4 название берется из даты создания мультимедиа. Затем пропускается через батник , который создает в поле комментарии виндовского проводника на основании названия файла в jpg 2021-10-21 , в mp4 подставляет в поле комментарии по названию файла 2021-10-21 и время создания мультимедиа тоже по имени файла на 2021-10-21-3-00 (почему то только это время создает).
Батник писал друг и сказал , что не может сделать , что бы время тоже менялось в mp4 файле. (Комментарии подставляются для того, что бы в стандартном проводнике при группировке по комментариям, фотографии и видео за один день группировались в один спойлер).
Можно ли создать батник , который по имени файла подставлял в поле комментарии так же как и сейчас и в тоже время файла формата mp4 , подставлял и комментарии по имени файла 2021-10-21 и время создания мультимедиа со временем? Заранее спасибо.

Вот сам батник, в папке лежит exif tool.exe и ffmpeg.exe
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
setlocal enabledelayedexpansion
 
mkdir newfiles
for %%a in ("*.mp4") do (
set rrr=%%~na%
set comment=!rrr:~0,10!
set dcom=!rrr:~0,10!T00:00:01.000000Z
ffmpeg -i "%%a" -c copy -metadata "Comment=!comment!" -metadata "creation_time=!dcom!" "newfiles\%%~na.mp4" -y
)
 
for %%a in ("*.jpg") do (
set rrr=%%~na
set comment=!rrr:~0,10!
exiftool -XPComment="!comment!" "%%a" -o "newfiles\%%~na.jpg"
)
pause
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.02.2021, 14:20
Ответы с готовыми решениями:

Пример кодирования изображения BMP в JPG средствами Python
Добрый день коллеги Возникла проблема, сыну, второкурснику задали задание, которое звучит примерно так: "Вот как файл...

Алгоритм кодирования имен цифрами
Решил написать код для задачки из 3 класса на решение алгоритма. Но запутался в конце кода с 0 . Как сделать ,чтобы не было пробела в...

Удалить префикс и суффикс из имён JPG-файлов
Всем добрый вечер. Снова нужна помощь специалистов. Суть задачи : Есть рабочий каталог D:/film с подкаталогами, в которых...

20
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
01.02.2021, 18:34
timson, я правильно понимаю, что в поле "Комментарии" по сути нужно засунуть все имя файла?
0
6973 / 2866 / 1101
Регистрация: 06.06.2017
Сообщений: 9,742
01.02.2021, 19:05
Цитата Сообщение от timson Посмотреть сообщение
батник , который создает в поле комментарии виндовского проводника
А дубли-то в newfiles\ он зачем создаёт? Цель же в добавке комментов в существующие файлы. Или нет?
Цитата Сообщение от timson Посмотреть сообщение
-metadata "creation_time=!dcom!"
Это уже не про комменты. Дату создания тоже менять надо?
Цитата Сообщение от timson Посмотреть сообщение
Батник писал друг и сказал , что не может сделать , что бы время тоже менялось в mp4 файле.
Как вижу, друг умеет работать с set. Очевидно, что затык в дефисах после h и m. Формат даты и времени в комментах какой желателен вообще? Без разницы, лишь бы группировка работала? Или в естественном виде с точками и двоеточием?
0
0 / 0 / 0
Регистрация: 16.11.2020
Сообщений: 11
01.02.2021, 22:11  [ТС]
Нужно засунуть имя фала (В данном случае 2021-02-01), время не нужно. Так как название файла вида 2021-01-01-20h31m44.mp4

Добавлено через 4 минуты
Дубли наверное, что бы можно было откатить если, что не так. Да, нужно подставить и комментарии и дату создания по имени файла. К примеру 2021-02-01 10-21-33.mp4 ,название файла. Нужно создать в поле комментарий 2021-02-01 и в поле дата создания мультимедиа желательно написать 2021-02-01 10-21-33 (а получается , что время только 3:00, если батником делать.)
0
6973 / 2866 / 1101
Регистрация: 06.06.2017
Сообщений: 9,742
01.02.2021, 22:26
Цитата Сообщение от timson Посмотреть сообщение
Дубли наверное, что бы можно было откатить
Так наверно или точно?
Цитата Сообщение от timson Посмотреть сообщение
2021-01-01-20h31m44.mp4
2021-02-01 10-21-33.mp4
Определитесь.
0
0 / 0 / 0
Регистрация: 16.11.2020
Сообщений: 11
01.02.2021, 22:37  [ТС]
Последний вариант выбираю, потому , что в проводнике при использовании plug in shelldetail , там можно выбрать при переименовании вариант Y-M-D h-m-s (поэтому устроит вариант 2021-02-01 10-21-33.mp4).
Дубликат в новой папке создается , для надежности. Так как бывает не все файлы работают с батником.
0
6973 / 2866 / 1101
Регистрация: 06.06.2017
Сообщений: 9,742
01.02.2021, 23:56
Вот так будет выглядеть верхняя половина (вторая, я так понимаю, и так работает):
Windows Batch file
1
2
3
4
5
6
7
@echo off&setlocal enabledelayedexpansion
2>nul md newfiles
for %%a in (*.mp4) do (
  set "d=%%~na"
  set "t=!d:* =!"
  ffmpeg -i "%%a" -c copy -codec copy -metadata "Comment=!d:~0,10!" -metadata "creation_time=!d:~0,10! !t:-=:!" "newfiles\%%~na.mp4" -y
)
Но creation_time — это дата кодирования/пометки, а не создания мультимедия.
Цитата Сообщение от timson Посмотреть сообщение
там можно выбрать при переименовании вариант Y-M-D h-m-s
В ИГП можно указывать какой угодно формат. Плагин не важен.
0
0 / 0 / 0
Регистрация: 16.11.2020
Сообщений: 11
02.02.2021, 00:12  [ТС]
Выше перечисленный батник итак подставляет в поле комментарии имя файла вида 2021-02-02 и даже подставляет дату создания мультимедиа, но только время 3часа 00 минут. В этом и сложность, я просил помочь, кто знает как в поле дата создания мультимедиа как поместить время из имени файла.
0
6973 / 2866 / 1101
Регистрация: 06.06.2017
Сообщений: 9,742
02.02.2021, 00:23
Цитата Сообщение от timson Посмотреть сообщение
и даже подставляет дату создания мультимедиа
Дату кодирования, повторяю.
Цитата Сообщение от timson Посмотреть сообщение
как в поле дата создания мультимедиа как поместить время из имени файла.
Что и продемонстрировано.
0
0 / 0 / 0
Регистрация: 16.11.2020
Сообщений: 11
02.02.2021, 00:32  [ТС]
Взял файл 2013-05-14 00-42-14.mp4. В поле дата создания мультимедиа было пусто. После запуска Вашего батника, показал в поле дата создания мультимедиа 14-05-2013 01-42. Что значит дата кодирования и чем она отличается от даты создания мультимедиа? Спасибо заранее. И время отличается на +1 час((
0
6973 / 2866 / 1101
Регистрация: 06.06.2017
Сообщений: 9,742
02.02.2021, 03:29
Цитата Сообщение от timson Посмотреть сообщение
Что значит дата кодирования и чем она отличается от даты создания мультимедиа?
Как видите, формат даты у д.с. мультимедиа без секунд (дата кодирования выводится полностью). То, что у вас она отображается — хорошо, но так происходит в тех же mp4 далеко не всегда и не везде (плагин или проводник — не суть), дату кодирования вы всегда выведите модулями на базе MediaInfo.
Цитата Сообщение от timson Посмотреть сообщение
И время отличается на +1 час((
У вас TCMediaInfo стоит? Там дата кодирования тоже на час больше показывает?
0
0 / 0 / 0
Регистрация: 16.11.2020
Сообщений: 11
02.02.2021, 10:54  [ТС]
Дата кодирования после Вашего батника UTC 2013-05-13 21:42:14 , так же есть дата записи файла 2013-05-04
14:42:34. Дата создания мультимедиа показывает через свойства 14-05-2013 1:42. (как будто 2 не уместилась от 21)
0
6973 / 2866 / 1101
Регистрация: 06.06.2017
Сообщений: 9,742
02.02.2021, 12:11
Цитата Сообщение от timson Посмотреть сообщение
Дата кодирования после Вашего батника UTC 2013-05-13 21:42:14
Ничего не путаете?
Цитата Сообщение от timson Посмотреть сообщение
как будто 2 не уместилась от 21
Где тут 21?:
Цитата Сообщение от timson Посмотреть сообщение
Взял файл 2013-05-14 00-42-14.mp4.
0
0 / 0 / 0
Регистрация: 16.11.2020
Сообщений: 11
02.02.2021, 15:35  [ТС]
Вот батник объединенный
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
setlocal enabledelayedexpansion
 
mkdir newfiles
for %%a in ("*.mp4") do (
set "d=%%~na"
  set "t=!d:* =!"
  ffmpeg -i "%%a" -c copy -codec copy -metadata "Comment=!d:~0,10!" -metadata "creation_time=!d:~0,10!T!t:-=:!+0400" "newfiles\%%~na.mp4" -y
)
 
for %%a in ("*.jpg") do (
set rrr=%%~na
set comment=!rrr:~0,10!
exiftool -XPComment="!comment!" "%%a" -o "newfiles\%%~na.jpg"
)
pause
Когда ставишь +0400 , то иногда время показывает какое в имени файла,а иногда время не корректное. Друг предполагает. что это связано со смещением времени.
Есть видео 2020-07-01 18-49-33.mp4 с датой кодирования через mediainfo Дата кодирования UTC 2020-07-01 00:00:01
Дата пометки : UTC 2020-07-01 00:00:01

после запущенного батника нового (в тексте он выше) , время мультимедиа стало 2020-07-01 17-49

Добавлено через 11 минут
Взял большое количество видео формата mp4 вида 2021-01-nn , где n разные числа в январе. Запустил батник , получилось время везде на 1 час меньше в поле дата создания мультимедиа из под проводника виндовс и в тотале коммандере с plugin shelldetail.
0
6973 / 2866 / 1101
Регистрация: 06.06.2017
Сообщений: 9,742
02.02.2021, 20:33
Цитата Сообщение от timson Посмотреть сообщение
for %%a in ("*.mp4")
for %%a in ("*.jpg")
Тут не нужны кавычки.

Цитата Сообщение от timson Посмотреть сообщение
Когда ставишь +0400
А нужно ли смещение?
intl.cpl > Сбросить > OK
timedate.cpl > Изменить часовой пояс... Часовой пояс совпадает? Чекбокс отмечен?
0
0 / 0 / 0
Регистрация: 16.11.2020
Сообщений: 11
02.02.2021, 21:31  [ТС]
Если убрать кавычки, то получится:
setlocal enabledelayedexpansion

mkdir newfiles
for %%a in (*.mp4) do (
set "d=%%~na"
set "t=!d:* =!"
ffmpeg -i "%%a" -c copy -codec copy -metadata "Comment=!d:~0,10!" -metadata "creation_time=!d:~0,10!T!t:-=:!" "newfiles\%%~na.mp4" -y
)

for %%a in (*.jpg) do (
set rrr=%%~na
set comment=!rrr:~0,10!
exiftool -XPComment="!comment!" "%%a" -o "newfiles\%%~na.jpg"
)
pause

Тогда батник с jpg не работает.
Время проверил через команды из под выполнить
intl.cpl > Сбросить > OK
timedate.cpl > Изменить часовой пояс... Часовой пояс совпадает? Чекбокс отмечен?
чекбокс только поставил во вкладке дополнительные часы.
0
6973 / 2866 / 1101
Регистрация: 06.06.2017
Сообщений: 9,742
03.02.2021, 02:07
Цитата Сообщение от timson Посмотреть сообщение
Тогда батник с jpg не работает.
Не может такого быть. Упростим jpg-часть и уберём лишний вывод:
Windows Batch file
1
2
3
4
5
6
7
@echo off&setlocal enabledelayedexpansion
exiftool -f -fast2 -m -q "-XPComment<${Filename;s/(\S+).*/$1/}" *.jpg -o newfiles/
for %%a in (*.mp4) do (
  set "d=%%~na"
  set "t=!d:* =!"
  ffmpeg -i "%%a" -c copy -loglevel 16 -metadata "Comment=!d:~0,10!" -metadata "creation_time=!d:~0,10!T!t:-=:!+0400" "newfiles\%%~na.mp4" -y
)
Добавлено: немного поправил.

Цитата Сообщение от timson Посмотреть сообщение
intl.cpl > Сбросить > OK
Пропустил: intl.cpl > Дополнительные параметры... > Сбросить > OK
Цитата Сообщение от timson Посмотреть сообщение
чекбокс только поставил во вкладке дополнительные часы.
Стоит ещё выйти из системы на всякий.
0
0 / 0 / 0
Регистрация: 16.11.2020
Сообщений: 11
03.02.2021, 02:10  [ТС]
Видео конвертит пока отлично, время создания мультимедиа берет из имени файла вида 2021-02-03 14-34-07. С фотографиями пока не работал, так как они почти все уже сделаны с комментариями. До этого батник не работал с видео файлами, у которых случайно было изменено расширение на jpg в total comandere. Очень признателен за Вашу помощь!
Опытным путем выяснил, что программы для фото и видео по типу гугл фото, сортируют по дате съемки и по дате создания мультимедиа.
0
0 / 0 / 0
Регистрация: 16.11.2020
Сообщений: 11
03.02.2021, 09:54  [ТС]
А подскажите , есть ли возможность сравнить имя файла фотографий 2021-02-03 9:43:33 с датой съемки 2021-02-03 9:43:33 и имя файла видео 2021-02-03 14:44:32 с датой создания мультимедиа 2021-02-03 14:44:32 , так как файлов фото и видео очень много и вручную можно пропустить. Хотелось бы автоматизировать этот процесс.
0
6973 / 2866 / 1101
Регистрация: 06.06.2017
Сообщений: 9,742
03.02.2021, 19:20
timson, сравнить можно, но только в имени файла не может быть классических двоеточий. Но дальше что? Чую, что пора отдельный топик создать с полноценным ТЗ. И лучше в этом разделе.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.02.2021, 19:20
Помогаю со студенческими работами здесь

Установка пароля на архив и добавление комментария к архиву в процессе архивации
Интересует добавление пароля при архивации и комента к архиву через SET PASSWD=pass не работает @echo off chcp 1251 rem...

Исчезновение формы комментария после отправки комментария
Здравствуйте. Столкнулся со следующей проблемой: Я сделал форму комментария, человек авторизируется на сайте, мне надо ,чтобы при...

Распределение по папкам и переименование JPG-файлов на основе даты их создания или модификации
В папке много .jpg файлов, хочется организовать их исходя из Даты Создания (Модификации) в свойствах файла. Во первых, для каждой даты...

Нужны методы фазового кодирования, расширения спектра, кодирования эхо-сигнала
Здравствуйте. Столкнулась с проблемой: взяла у препода задание по стеганографическим методам и их реализации в аудиосигналах и не могу их...

Удаление выбранного комментария и редактирование выбранного комментария
Помогите, пожалуйста решить задание. Дописать функцию редактирования и удаления выбранного комментария. &lt;body&gt; &lt;div...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru