Разбор 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