Vous rentrez de voyage, des souvenirs et des images plein les mirettes et votre appareil photo, et vous vous apprêtez à transférer toutes les photos vers votre PC puis le site web familial. Où vous avez par exemple installé l'excellent logiciel open source PHPWebGallery (voir en http://phpwebgallery.net/ - il faudra que j'en fasse un billet à part entière!).

Tout va bien pour transférer les photos de l'appareil (ou plutôt de sa carte mémoire) vers le PC. Selon le cas, les photos peuvent même être renommées automatiquement, mais parfois pas. Quand elles sont renommées automatiquement, souvent un espace est mis devant le numéro de la photo, qui s'appelle ainsi quelque chose comme 'Tante-Jeannine-plage 0056.jpg'

Vous chargez tout ça en ftp (Filezilla, open source, encore un billet que je devrai rédiger! ou encore CuteFTP, commercial, un autre billet!) vers votre serveur, vous activez PHPWebGallery et là, patatras! le programme vous signale que les fichiers de vos photos ont un "nom illégal"... tout ça à cause de ce fameux espace...

Autres exemples du même problème:

  • Vous chargez les photos non depuis votre appareil avec son programme dédié, qui vous permet d'appeler les photos 'Tante-Jeannine-plage 0056.jpg', mais directement depuis la carte mémoire. Et du coup les fichiers photos s'appellent 'IMG 0056.jpg'. Ce qui ne rendra guère facile, dans 3 mois, de savoir à quelle occasion ces photos ont été prises.
  • Vous téléchargez (légalement, hein!) les différentes pistes d'un CD, mais les noms des morceaux ne correspondent pas à la syntaxe que vous utilisez habituellement, par exemple le nom comporte album, auteur, nom du morceau alors que toute votre bibliothèque est organisée avec des noms de morceau placés au bon endroit dans un dossier adéquat.

Bref, vous avez d'une dizaine à quelques centaines de photos à renommer intelligemment!

Au début, j'ai pas mal galéré. Pour une dizaine de photos ou de morceaux, le plus simple était bien sûr de renommer les fichiers à la main. Dans certains cas, un usage astucieux de la "boîte noire" du DOS pouvait aider... mais parfois pas.

Jusqu'à ce que je trouve l'arme fatale, un logiciel pour renommer en masse et intelligemment les fichiers: BRU Bulk Rename Utility que l'on trouve en http://www.bulkrenameutility.co.uk/Main_Intro.php.

On l'installe, mais quand on le lance... horreur, l'écran se remplit de tas d'options, et les textes en Anglais ont de quoi décourager le plus anglophones des francophones... Heureusement, deux fenêtres permettent de visualiser les noms "avant" et "après" la transformation que l'on s'apprête à faire, et l'on peut donc tâtonner sans danger avant de lancer l'opération (cela ne vous empêche pas de le faire sur un premier ensemble de quelques fichiers seulement, dont à tout hasard vous avez gardé une copie dans un coin!).

Pour vous aider: une zone essentielle, celle marquée RegEx(1). Elle s'utilise avec des Expressions Régulières, c'est-à-dire une façon très puissante -mais très complexe!- de trouver des noms de fichiers et leur remplacement. Si vous ne connaissez pas... ce n'est pas le moment d'apprendre ce sujet ardu!

Voici quand même un truc pour remplacer les espaces par des '-':

  1. Vous désélectionnez toutes les cases sauf RegEx
  2. Dans la fenêtre de gauche des fichiers, vous sélectionnez les fichiers que vous souhaitez renommer.
  3. Vous tapez dans la case Match la chaîne "([^ ]*) (.*)" (sans les guillemets)(cela fait: parenthèse gauche, crochet gauche, accent circonflexe [et il vous faudra taper un espace pour que l'accent s'affiche], un espace, un crochet droit, une étoile, une parenthèse droite, un espace, une parenthèse gauche, un point, une étoile, une parenthèse gauche, ouf!)
  4. Vous tapez dans la case Replace la chaîne "\1-\2" (toujours sans les guillemets), et, normalement, vous devriez voir dans la fenêtre de droite des fichiers les noms modifiés, avec l'un des espaces remplacé par le signe -
  5. Si ce début vous convient, cliquez sur le bouton Rename en bas à droite. Vérifiez que tout va bien (sinon, bouton Revert). Et il ne vous reste plus qu'à cliquer plusieurs fois sur ce bouton Rename tant que restent des espaces dans les noms de fichiers.

C'est largement suffisant pour la plupart des utilisations.

Autres exemples:

  1. Supprimer la chaîne Album3 dans le nom des fichiers: Match "(.*)Album3(.*)" et "\1\2" dans Replace.
  2. Supprimer la chaîne [Album3]: c'est presque pareil, sauf que les caractères [ et ] sont spéciaux, alors on ne peut pas les écrire autrement que précédés de \ (pas simple... mais c'est comme ça!). Du coup Match "(.*)\[Album3\](.*)" toujours pour "\1\2" dans Replace.
  3. A titre de curiosité, et sans appuyer sur Rename, dans l'un des cas ci-dessus mettez donc dans Replace "\2\1": cela pourrait vous être utile dans certains cas!

Sauf si vous êtes informaticien(ne), inutile de chercher à tout comprendre dans ces Expressions Régulières!

Pour renommer les fichiers en masse, BRU Bulk Rename Utility

Page de présentation :  http://www.bulkrenameutility.co.uk/Main_Intro.php (en anglais)
Page de téléchargement :  http://www.bulkrenameutility.co.uk/Download.php
Appréciation : Ardu mais Très utile! / Coût : Gratuit
Concurrents, voisins :  Je n'en ai ni cherché ni trouvé