J'ai essayé d'écrire un petit script pour automatiser la création de listes de lecture (m3u) pour des dizaines de dossiers/sous-dossiers de fichiers mp3/mp4, tout en omettant divers autres fichiers misc. Je connais très peu de choses sur Powershell mais j'ai réussi à reconstituer quelque chose qui fonctionne presque. Le seul point négatif est que lorsque j'utilise "$ _. Extension -eq", cela ne semble pas fonctionner, ou du moins je ne l'utilise pas correctement. Si je l'utilise pour faire correspondre des fichiers log/txt dans un dossier temp par exemple, cela fonctionne, mais pas dans ce cas. Voici le code -
$pathname = read-host "Enter path"
$root = Get-ChildItem $pathname | ? {$_.PSIsContainer}
$rootpath = $pathname.substring(0,2)
Set-Location $rootpath
Set-Location $pathname
foreach($folder in $root) {
Set-Location $folder
foreach($file in $folder) {
$txtfile =".m3u"
$files = gci | Where-Object {$_.extension -eq ".mp3" -or ".mp4"}
$count = $files.count
if($count -ge 2){
$txtfile = "_" + $folder.name + $txtfile
Add-Content $txtFile $files
}
}
if(test-path $txtFile){
Add-Content $txtFile `r
}
Set-Location $pathname
}
J'ai essayé plusieurs variantes comme swapping « -match » pour « eq », mais pas de chance. incidemment, si j'omets le "-ou" .mp4 "" des parenthèses alors cela fonctionne bien, mais j'en ai besoin pour faire correspondre les deux, et seulement les deux mp3/mp4.
Merci d'avance.
Merci beaucoup. Fonctionne parfaitement maintenant! – gavin19