Разбор m3u с помощью пакетного скрипта

Я хотел бы проанализировать исполнителя и название песни из плейлиста m3u с помощью пакетной команды

#EXTM3U
#EXTINF:151,TJR - We Wanna Party Into We Want Some Pussy (BB Tribe EDIT)
\#Mixit\pjesme\TJR - We Wanna Party Into We Want Some Pussy (BeatBreaker Tribe EDIT).mp3
#EXTINF:202,Alan Walker - Alone (Prisoners Bootleg)
\Users\Asrock 880\Downloads\Alan Walker - Alone (Prisoners Bootleg).mp3
#EXTINF:236,Alan Walker - Alone 2k17 (#Ash Simons Bangerz) (Ft. Holl & Rush)

поэтому выходной файл.txt будет выглядеть так

TJR - We Wanna Party Into We Want Some Pussy (BB Tribe EDIT)
Alan Walker - Alone (Prisoners Bootleg)
Alan Walker - Alone 2k17 (#Ash Simons Bangerz) (Ft. Holl & Rush)

Любая помощь будет полезна, спасибо

Это может быть и Power Shell или что-то другое, но с лучшим описанием я DJ...:P

2 ответа

Решение
  • Таким образом, вы хотите только информацию в строках, начинающихся с#EXTINF после запятой.
  • вы найдете сотни примеров [SO] работы с findstr выбрать строки с шаблоном (см. findstr /?)
  • а также с for /f проанализировать содержимое строки с разделителями и токенами (см. для /?)

В партии:

@Echo off
(For %%M in (*.m3u
  ) Do For /f "tokens=1* delims=," "%%A" in (
    'findstr "^#EXTINF" %%M'
  ) Do Echo %%B
) > Playlists.txt

В строке cmd:

@For /f "tokens=1* delims=," %A in ('findstr "^#EXTINF" playlist.m3u') Do @Echo %B

Для перенаправления в файл заключите в скобки команду for и добавьте >playlist.txt

Кто-то хотел удалить тег PowerShell, поэтому вот один вкладыш:

(Select-String *.m3u -Pattern '^#EXTINF') -Replace '^[^,]+,'|Out-File PlayList.txt
Другие вопросы по тегам