FWIW-我很开心“开发”这个简单的例程,它将在MP3文件的单个目录中的数百个文件列表中列出独特的艺术家。
基于模式“艺术家-title.mp3”
Get-ChildItem | ForEach-Object {($_.basename -split ("-"))[0]} | Select-Object -unique
我现在想做的是在每个唯一名称旁边都加上一个数字(例如,埃林顿公爵-多丽丝节4-6
不确定如何执行此操作,但这可能非常简单。试图使用group语句,但没有运气
佛蒙特州温德姆市的比尔·克拉克
答案 0 :(得分:0)
假设所有文件都遵循该模式:
Get-ChildItem -File |
Group-Object -Property {$_.BaseName.Split('-')[0]}
这将自动对管道中从上一项返回的所有字符串进行分组。
然后您可以通过以下方法做更多有趣的事情:
Get-ChildItem -File |
Group-Object -Property {$_.BaseName.Split('-')[0]} |
ForEach-Object {
$dir = "$([IO.Path]::GetDirectoryName($_.Group[0].FullName))\$($_.Name)\"
if (-not (Test-Path -Path $dir -PathType Container)) {
New-Item -Path $dir -ItemType Directory
}
foreach ($file in $_.Group) {
$file | Copy-Item -Destination $dir -Force
}
}
现在,您的所有歌曲都按艺术家在文件夹中排序。