2017-05-09 72 views
-5

我想从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) 

任何帮助将是有益的,感谢

它可以是电源外壳太或任何其他但有更好的描述我DJ ...:P

+1

你尝试过什么至今? StackOverflow不是一个代码写入服务。 – gvee

+0

简单单线。见'for /?'。你需要适当的令牌('2')和分隔符(',') – Stephan

回答

0
  • 所以,你只需要在逗号后面以 #EXTINF开头的行上的信息。
  • 你会发现在[SO]与findstr正与模式选择线(见findstr /?
  • ,并与for /f解析一行带分隔符和标记(见for /?
  • 内容数以百计的例子

在分批:

@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 

重定向到一个文件中附上了命令在括号中追加>playlist.txt

+0

感谢其工作 – Hotshot

+0

任何方式来同时添加更多的播放列表? – Hotshot

+0

这是一个非常基本的批处理工具:-(你应该在**你的**任务中付出更多的努力,一个简单的'for'循环可以迭代一个通配符,现在我将扩展上面的批处理样例,但是扩展一个问题是[SO]中的一个nogo,注意你的问题中的反对票和关闭请求,以[Tour]和学习[Ask] – LotPings

0

有人想删除PowerShell的标签,所以这里是一个班轮:

(Select-String *.m3u -Pattern '^#EXTINF') -Replace '^[^,]+,'|Out-File PlayList.txt 
+0

我喜欢你说的方式“有人想删除PowerShell标签”:) – SteveFest