В рамках этой заметки не стоит задача представить готовое универсальное и многофункциональное решение для конвертирования музыкальных файлов в разные форматы. Это демонстрация совместного использования базовых возможностей PowerShell и FFmpeg для достижения результата.
Приведённые сценарии PowerShell рассчитаны на запуск из директории, в которой хранятся музыкальные файлы. В результате успешного выполнения сценария, в текущей директории будет создана поддиректория с именем целевого формата, в которой будут сохраненые конвертированные файлы. Оригинальные файлы останутся без изменений.
(New-Item -ItemType Directory -Path '.\FLAC') -and (Get-ChildItem -Path . -Filter *.m4a | ForEach-Object { ffmpeg -i "$_" -acodec flac -c:v copy ".\FLAC\$($_.BaseName).flac" })
(New-Item -ItemType Directory -Path '.\ALAC') -and (Get-ChildItem -Path . -Filter *.flac | ForEach-Object { ffmpeg -i "$_" -acodec alac -c:v copy ".\ALAC\$($_.BaseName).m4a" })
Каждый пользователь, знакомый с основами PowerShell, может использовать приведённые сценарии в качестве отправной точки для создания собственного решения, отвечающего имеющимся представлениям и запросам. Например, выполнить конвертацию файлов из вложенных директорий, автоматически упорядочить структуру директорий и имена файлов, добавить тэги, удалить исходные файлы и многое другое.