Пакетная автоматизация с использованием метаданных

269
Mr-RightHanded

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

Вот мой код до сих пор. Любая помощь и / или привести меня в правильном направлении будет очень цениться.

@echo off for /r %%a in (*.mp3) do ( ( for %%b in ("%%~na") do echo ^Name of file: %%~b echo ^Artist: echo ^Song: echo ^Album: echo ^Comment: )>"%%~dpna.txt" )  

Мне бы очень понравилось, если бы раздел комментариев метаданных можно было извлечь. Я провел годы, добавляя описания к альбомам. Благодарю.

PS Не эксперт в программировании. Просто провел несколько исследований для вещей, которые я хотел достичь.

1
Вы хотите сделать это, чтобы чему-то научиться? В противном случае, почему бы не взглянуть на различные доступные инструменты "музыкальной библиотеки"? Seth 5 лет назад 0
... такой как ffprobe от FFMPEG grawity 5 лет назад 1
@ Да, я делаю разные безумные вещи для архивирования своих файлов. И я хотел бы, чтобы у меня была гибкость, чтобы сделать что-то с моей повесткой дня, изложенной выше. Есть идеи, как я могу назвать метаданные файла? Mr-RightHanded 5 лет назад 0
@ Grawity Спасибо за предложение. Выглядит вполне законно; Я прочитал это документация. Единственная проблема, с которой я сталкиваюсь сейчас, это то, что я не знаю, как я мог бы отразить это в формате, который я хочу изложить выше. Mr-RightHanded 5 лет назад 0
Для начала подумайте не использовать пакетные скрипты. За то, что вы хотите сделать, они могут быть довольно ужасными. Попробуйте использовать PowerShell с Get-ChildItem и запустить ffmpeg или другую утилиту, чтобы получить метаданные в виде текста. После этого вы можете просто редактировать эти данные, как вам нужно. Seth 5 лет назад 0
@Seth. Спасибо за ваше предложение. Как я мог этого добиться? Я не настолько знаком, работаю над PowerShell, как я могу интегрировать его в пакет? Потому что прочитав документацию по ffprobe. Я придумал решение, чтобы получить необходимые детали. Но я не знаю, как повторить это в пакетном сценарии. Вот мой код: `ffprobe -v error -show_entries format_tags = title, artist, comment -of по умолчанию = noprint_wrappers = 1: nokey = 1 input.mp4` Mr-RightHanded 5 лет назад 0
Ну, это зависит от того, что вы хотите сделать. То же самое относится к PowerShell и Batch в этом случае. Вы можете либо выполнить команду три раза и просто позволить ей выводить информацию для одного параметра за раз, либо вам нужно будет каким-то образом редактировать вывод. Вполне вероятно, что вы хотите сохранить выходные данные в переменную, чтобы вывести их после запуска программы в более позднее время. Seth 5 лет назад 0
@Set Было бы замечательно, если бы он вывел три разных результата, но трижды он не был бы идеальным, как то, что вы упомянули. Я найду работу вокруг. Мой вопрос сейчас Как я могу повторить результат или выполнить эту команду в пакетном скрипте с моим форматом выше? Предполагая, что я просто хочу 1 из трех из заголовка, исполнителя и значения комментария. Mr-RightHanded 5 лет назад 0

0 ответов на вопрос

Похожие вопросы