Les noms de fichiers suivent souvent un schéma spécifique (ex. identifiant d'acteur, numéros de série). Pour faciliter les recherches futures, il est préférable de séparer les segments alphabétiques et numériques lors de l'extraction, plutôt que de conserver un format unique avec des séparateurs incohérents.
Bien que Python soit souvent le choix par défaut pour ce type de tâche, PowerShell (ou pwsh dans ses versions multiplateformes récentes) offre des avantages majeurs :
- Outil natif sous Windows, il ne nécessite aucune installation de dépendances externes.
- Son modèle orienté objet permet de manipuler des données structurées plutôt que de simples flux de texte.
- Les commandes saisies interactivement dans le terminal peuvent être sauvegardées telles quellles pour former un script réutilisable.
Pour lister le contenu d'un répertoire, l'applet de commande Get-ChildItem est utilisée (souvent via ses alias ls ou dir). Contrairement aux shells traditionnels, le résultat n'est pas une simple chaîne de caractères, mais une collection d'objets (comme System.IO.FileInfo) possédant des propriétés et des méthodes.
L'objectif est de filtrer ces fichiers à l'aide d'expressions régulières, puis de construire de nouveaux objets pour l'exportation. L'applet de commande Where-Object permet de filtrer la collection en évaluant la propriété Name de chaque élément.
Voici une approche structurée pour extraire et exporter ces métadonnées vers un fichier CSV :
$elementsMedias = Get-ChildItem -File
$filtreDonnees = $elementsMedias | Where-Object { $_.Name -match '(?<prefixealpha>[A-Za-z]{2,5})[-_]?(?<suffixenum>\d{2,5})' }
$resultatFormate = $filtreDonnees | Select-Object Name,
@{Label="SegmentTexte"; Expression={$Matches['prefixeAlpha']}},
@{Label="SegmentChiffre"; Expression={$Matches['suffixeNum']}}
$resultatFormate | Export-Csv -Path "./catalogue_medias.csv" -NoTypeInformation -Encoding UTF8</suffixenum></prefixealpha>
L'utilisation de groupes de capture nommés dans l'expression régulière simplifie l'accès aux données dans le bloc de calcul des propriétés. Enfin, l'exportation est configurée sans informations de type et avec l'encodage UTF8 pour garantir une compatibilité maximale avec d'autres outils d'analyse de données.
Pour vérifier l'intégrité du fichier généré, l'importation peut être effectuée directement :
Import-Csv -Path "./catalogue_medias.csv"