Привет!
В папке лежат файлы 01.mp3, 01.mp3_dig, 02.mp3, 02.mp3_dig.
Например, файл 01.mp3_dig описывает файл 01.mp3 и имеет вид:
Artist=Иван Иванов/Петя/Катя
Title=Супер Песня
Каким образом в PowerShell отредактировать код так, чтобы пакетом преобразовать все музыкальные файлы, а именно записать информацию в ID3v2 теги Artist и Title?
Проблема в том, что если
Title=Название, Artist=Иван/Петя — то данные записываются корректно.
В случае, если Title=Название Хорошее, Artist=Иван Романов/Петя Иванов (т.е. добавляется пробел или дефис, ничего не работает...).
# Устанавливаем путь к директориям
$path = "C:\Users\pavel\Desktop\base2"
$ffmpeg = "C:\Program Files\ffmpeg\bin\ffmpeg.exe"
# Заходим в нужную директорию с файлами
Set-Location $path
# Получаем список файлов в директории
$files = Get-ChildItem -Filter "*.mp3_dig"
# Перебираем каждый файл
foreach ($file in $files) {
# Проверяем наличие файла NAME.mp3_dig
if (Test-Path $file.FullName) {
# Получаем информацию из файла NAME.mp3_dig
$title = Select-String -Pattern 'Title=' -Path $file.FullName | ForEach-Object { $_.Line -replace 'Title=' }
$artist = Select-String -Pattern 'Artist=' -Path $file.FullName | ForEach-Object { $_.Line -replace 'Artist='}
# Записываем информацию в ID3 tag с помощью ffmpeg
Start-Process -FilePath $ffmpeg -ArgumentList "-i $($file.BaseName).mp3 -metadata title='$title' -metadata artist='$artist' -c copy -y $($file.BaseName)_edited.mp3" -Wait
# Показываем сообщение об успешной записи или ошибки
Write-Host "Информация записана в файл $($file.BaseName)_edited.mp3"
} else {
Write-Host "Файл $($file.Name) не найден"
}
}
Заранее спасибо!