如何从媒体播放器播放列表中提取路径和文件名以将文件复制到新位置?

时间:2016-03-30 02:27:13

标签: powershell

我正在尝试编写一个脚本,该脚本将读取Windows媒体播放列表文件并提取播放列表中所有歌曲的路径和文件名,并将文件复制到单个文件夹中。我不知道如何删除之间的文本

3 个答案:

答案 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接口,但我正在研究那些东西。