我正在尝试编写一个脚本,该脚本将读取Windows媒体播放列表文件并提取播放列表中所有歌曲的路径和文件名,并将文件复制到单个文件夹中。我不知道如何删除之间的文本
答案 0 :(得分:0)
$wpl = Get-Content "C:\Temp\test.wpl"
foreach ($line in $wpl) {
If ($line -match "<media src=*") {
$file = $line.split("`n")|%{
$_.split('"')[1]}
Copy-Item $file "C:\Temp"
}
}
在Win7和MediaPlayer 12上测试
答案 1 :(得分:0)
对于.m3u文件,您可以使用以下代码完成工作:
$list = Get-Content "C:\Temp\test.m3u" | ? { $_ -notmatch "^$|^\s+$" }
foreach ($line in $list) {
If ($line -notmatch '#' ) {
Copy-Item $line "C:\Temp"
}
}
答案 2 :(得分:0)
我终于让它为m3u文件工作了。
$PlaylistName = Read-Host 'Playlist filename (Include drive and path):'
$Directory = Read-Host 'Target Directory (Include drive and path):'
Write-Host "Searching "$PlaylistName" for media files and copying to "$Directory"`n"
(Get-Content $PlaylistName) | where {$+.trim() -ne "" } | Out-File Temp.txt
(Get-Content Temp.txt) | Select-String -pattern "#EXTINF:0" -notmatch | Out-File first.txt
(Get-Content first.txt) | Select-String -pattern "#EXTM3U" -notmatch | Out-File final.txt
Copy-Item (Get-Content final.txt $Directory
仍然需要很多清理和很多改进,可能还有一个gui接口,但我正在研究那些东西。