Exemples

Voici quelques exemples détaillés qui devraient vous aider dans l'écriture d'expressions de renommage.





Renommer une image avec la date et l'heure de sa prise de vue

Comment ça marche ?
La plupart des appareils photo numériques stockent dans les images de nombreuses données concernant la prise de vue. Parmi celles-ci, plusieurs dates dont celle à laquelle l'image a été prise.
Siren extrait cette information et la rend directement utilisable dans une expression avec la variable : %Xdo (eXif DatetimeOriginal)
Par défaut elle est au format : AAAAMMJJ_HHMMSS

Donc en suivant l'expression sur "IMG_3975.JPG" :

Planet_Mars_donnePlanet_Mars_
Planet_Mars_%XdodonnePlanet_Mars_20030909_214758
Planet_Mars_%Xdo.jpgdonnePlanet_Mars_20030909_214758.jpg

Et si des images ont été prises dans la même seconde ?
Avec l'expression ci-dessus des "nouveaux noms" seront identiques, donc une erreur apparaîtra lors du renommage.
Les variables "%nc" et "%ncs" fournissent une valeur unique évitant les "collisions" de noms.
Utilisez une expression comme : Planet_Mars_%Xdo%ncs.jpg



Ajouter une date au format que vous aurez choisi

Prenons le fichier "Note.txt" modifié le 01/02/2003



Comment ça marche ?
La solution la plus élégante est sans doute celle utilisant un modificateur de format de date.
Un format de date est une chaîne de caractères indiquant quels éléments en extraire et comment les agencer.
Dans notre cas, ce sont les jour, mois et année (sans le siècle) séparés par des '-'.

%d : correspond au jour
%m : au mois
%y : à l'année sur deux chiffres
Donc la chaîne de format qui nous intéresse est : %d-%m-%y
Un format doit être spécifié entre accolades juste après le nom de la variable.

%b correspond au nom de base du fichier, dans notre cas : "Note"
%dm correspond à la date de dernière modification
%e, l'extension du fichier vaut "txt"

Donc, en suivant l'expression :

%bdonneNote
%b-donneNote-
%b-%dm{"%d-%m-%y"}donneNote-01-02-03
%b-%dm{"%d-%m-%y"}.%edonneNote-01-02-03.txt

Pour en savoir plus : dates



Déplacer des images suivant leur date de prise de vue


Comment ça marche ? (explications utiles seulement pour les utilisateurs de Windows)
Si Siren peut renommer des fichiers, il peut aussi les déplacer en créant les répertoires manquants.
La premiere chose qui peut surprendre c'est que les '\' sont doublés. C'est normal, '\' est un caractère d'échappement (il fait perdre le statut "spécial" au caractère qui le suit) donc pour apparaître tel quel il doit s'enlever à lui-même son statut spécial ...

Nous avons vu plus haut comment changer le format d'une date. En séparant les éléments année, mois et jour par des '\' (ou '/' sous GNU/Linux) c'est un chemin de fichier qui est obtenu.


Donc en suivant l'expression sur "IMG_3975.JPG" :


Pour en savoir plus : dates



Noms contenant des numéros de tailles différentes

Comment ça marche ?
Ceci est surtout gênant parce qu'alphabétiquement "Img2.jpg" vient après "Img10.jpg".
%N est une variable qui contiendra le premier nombre du nom de base du fichier. Pour "Img2.jpg", %N vaudra 2. Il vaudra en fait "002" ou "02" ... suivant la taille définie dans "Préférences/Calcul du nouveau nom/Nombres" ou dans l'expression (clickez ici pour plus de détails).


%e, l'extension du fichier vaut "jpg"

Donc en suivant l'expression sur "Img2.jpg" :

Img_donne"Img_"
Img_%Ndonne"Img_002"
Img_%N.donne"Img_002."
Img_%N.%edonne"Img_002.jpg"

Ajouter une valeur aux nombres

Comment ça marche ?
La variable %N peut être suivie par un modificateur spécifique qui changera ses paramètres par défaut (clickez ici pour plus de détails).
Dans ce cas le premier nombre du nom de base est extrait, aucun zéro n'est ajouté à sa gauche (1) et 5 lui est ajouté (-5 aurait soustrait 5).


%e, l'extension du fichier est "jpg"

Donc en suivant l'expression sur "Img50.jpg" :

Imgdonne"Img"
Img%Ndonne"Img50"
Img%N{1,5}donne"Img55"
Img%N{1,5}.donne"Img55."
Img%N{1,5}.%edonne"Img55.jpg"

Changer la casse (majuscule/minuscule)

Comment ça marche ?
Entre le caractère '%' et le nom de la variable vous pouvez ajouter un modificateur de casse (maj/min).
Il ne modifie que la chaîne à laquelle il est associé. Il en existe 4. Parmi ceux-ci : 'L' qui met en majuscule le premier caractère et le reste en minuscule.

%f représente le nom complet du fichier.


Donc en suivant l'expression :

%fdonneSONG TITLE.MP3
%LfdonneSong title.mp3

Pour en savoir plus : modification de casse



Remplacer les '.' (points) par des ' ' (espaces)

Comment ça marche ?
Nous utilisons ici le modificateur de remplacement avec deux paramètres : la chaîne à remplacer et la chaîne de remplacement. Nous voulons substituer tous les '.' par des ' ', le premier sera donc '.' et le second ' '. Nous appliquons ce modificateur sur "%b" qui est le nom de base (nom de fichier sans l'extension). En le faisant sur "%f" (nom complet), nous aurions aussi remplacé le '.' précédant l'extension.


%e, l'extension du fichier vaut "avi"

Donc en suivant l'expression :

%bdonneMy.preferred.movie
%b("."," ")donneMy preferred movie
%b("."," ").donneMy preferred movie.
%b("."," ").%edonneMy preferred movie.avi

Pour en savoir plus : remplacement de chaîne



N'extraire que la fin d'une chaîne

Comment ça marche ?
Le modificateur "()" permet d'extraire une partie de la chaîne à laquelle il est associé. Son premier paramètre est la position de départ de cette extraction, un éventuel second paramètre permet de préciser le nombre de caractères à extraire. S'il est absent, l'extraction se fait jusqu'à la fin.

Quelle valeur choisir pour la position de départ ?
Elle n'est pas la même suivant le fichier que l'on examine. 10 pour le premier et 5 pour le second ... Mais en fait, ce qui nous intéresse ce sont les 8 derniers caractères. Il faudrait donc pouvoir indiquer que le numéro du premier caractère à extraire est relatif à la fin et non au début de la chaîne. Siren gère ce cas par un numéro "négatif".

Par exemple, en prenant "ABCDEF" :

Plus clairement, -8 "seul" signifiera : "les 8 derniers caractères"

%f est le nom complet du fichier

Donc en suivant l'expression sur "A1B#0302.gif" :

%fdonneA1B#0302.gif
%f(-8)donne0302.gif

Pour en savoir plus : extraction de chaîne



N'extraire que le début d'une chaîne

Comment ça marche ?
Comme nous l'avons vu précédemment, le modificateur "()" permet de définir un début d'extraction relatif à la fin d'une chaîne. Le problème ici est légèrement différent puisque cette fois c'est le nombre de caractères qui doit pouvoir être relatif à la longueur de la chaîne. Si vous donnez au "nombre de caractères" (2ième paramètre) une valeur négative, la position du dernier caractère extrait sera calculée ainsi :
longueur de la chaîne moins la valeur absolue du paramètre.

Dans les cas qui nous intéressent, "%b" vaut :

%b(1,-5) équivaudra donc à :

%e est l'extension du fichier

Donc en suivant l'expression sur "A1B#0302.gif" :

%bdonneA1B#0302
%b(1,-5)donneA1B
%b(1,-5).donneA1B.
%b(1,-5).%edonneA1B.gif

Pour en savoir plus : extraction de chaîne



Inverser des éléments, en supprimer

Comment ça marche ?
Le modificateur "[]" "découpe" la chaîne associée en éléments de tableau suivant les caractères spécifiés dans "Préférences/Calcul du nouveau nom/Séparateurs d'éléments de tableaux" (ou passés en second paramètre à "[]").
Chaque "sous-chaîne" est accessible par son indice.


Dans notre cas, si '-' est un de ces séparateurs :

%bdonneSong Title 1 - Singer - Site
%b[1]donneSong Title 1
%b[2]donneSinger
%b[3]donneSite

Si l'indice est négatif, la numérotation part de la fin :

%b[-1]donneSite
%b[-2]donneSinger
%b[-3]donneSong Title 1

%e, l'extension du fichier vaut "mp3"

Donc en suivant l'expression sur "Song Title 1 - Singer - Site.mp3" :

%b[2]donneSinger
%b[2] -donneSinger -
%b[2] - %b[1]donneSinger - Song Title 1
%b[2] - %b[1].donneSinger - Song Title 1.
%b[2] - %b[1].%edonneSinger - Song Title 1.mp3

Pour en savoir plus : modificateur "[]"



L'extraction par tableau avec des éléments séparés par des chaînes

Comment ça marche ?
Il est clair que nous devons utiliser l'extraction par tableau (surtout si l'on compte renommer de nombreux fichiers).
Mais souci ... les différents éléments sont séparés par des chaînes et non un seul caractère (que l'on aurait pu saisir dans "Préférences/Calcul du nouveau nom/Séparateurs d'éléments de tableaux" ou passer en second paramètre à "[]").
L'idée "simple" consiste à "concaténer" les modificateurs, chacun s'appliquant sur le résultat qui précède. En remplaçant "=##=" par un '-' on peut utiliser sans problème le modificateur "[]".

Dans les exemples précédents, nous avons déjà effectué des remplacements.


%e, l'extension du fichier vaut "mp3"

Donc en suivant l'expression :

%bdonneArtist =##= Album =##= Song
%b("=##=","-")donneArtist - Album - Song
%b("=##=","-")[3]donneSong
%b("=##=","-")[3].donneSong.
%b("=##=","-")[3].%edonneSong.mp3

Pour en savoir plus : remplacement de chaîne, modificateur "[]"



Le problème "The"

Imaginez que vous ayez beaucoup de fichiers "mp3" dont les noms sont construits comme suit : Artiste - Chanson.mp3
Si vous avez nommé vos fichiers "Beatles" correctement, ils commencent par "The Beatles". Mais ce nommage n'est peut-être pas très intéressant : "The Beatles" seraient plutôt à classer dans les "B" que dans les "T".



Comment ça marche ?
On utilise ici une "combinaison" de l'extraction par tableau et par position.
En prenant le fichier : The Beatles - Eleanor Rigby.mp3
%b[1] vaut "The Beatles" et %b[2] vaut "Eleanor Rigby"

Le modificateur qui suit : "(5)" effectue une extraction sur la chaîne à laquelle il est associé, dans notre cas : "%b[1]" donc "The Beatles". Le chiffre 5 indique la position de début, l'absence de deuxième paramètre indique que l'extraction se fait jusqu'à la fin.

Donc %b[1](5) ("The Beatles") à partir du 5ième caractère, vaut "Beatles".
%b[2] donne "Eleanor Rigby"

%e, l'extension du fichier vaut "mp3"

Donc en suivant l'expression sur "The Beatles - Eleanor Rigby.mp3" :

%b[1]donneThe Beatles
%b[1](5)donneBeatles
%b[1](5), The -donneBeatles, The -
%b[1](5), The - %b[2]donneBeatles, The - Eleanor Rigby
%b[1](5), The - %b[2].donneBeatles, The - Eleanor Rigby.
%b[1](5), The - %b[2].%edonneBeatles, The - Eleanor Rigby.mp3

Pour en savoir plus : modificateur "[]", extraction de chaîne



Supprimer le début d'une chaîne jusqu'à un caractère donné

Comment ça marche ?
L'idée consiste à utiliser le modificateur "[]".
Si la chaîne est découpée autour de "-", nous voulons tous les éléments à partir du second.
0 : indique que ce nombre est "autant que possible".

Donc en suivant l'expression sur "Good - Singer - Title 1.mp3" :

%fdonneGood - Singer - Title 1.mp3
%f[2,0,"-"]donneSinger - Title 1.mp3

Voici une autre solution : %b("-","*",1,1)[2,"*"].%e

Pour en savoir plus : modificateur "[]"



Supprimer une sous-chaîne "délimitée"

Comment ça marche ?
L'idée consiste à considérer '(' et ')' comme des séparateurs d'éléments de tableau. Le modificateur d'extraction "[]" admet un deuxième paramètre qui donne une liste de caractères à utiliser comme séparateurs (elle remplace celle par défaut définie dans "Préférences/Calcul du nouveau nom/Séparateurs d'éléments de tableaux").

Pourquoi utiliser "-1" comme indice de la deuxième extraction ?
A priori, nous ne connaissons pas le nombre de ')'.
"-1" donnera le premier élément en partant de la fin : la chaîne qui suit le dernier ')'.


Donc en suivant l'expression sur
"Title 1 (www.site.net) Singer 1.mp3" :

%fdonneTitle 1 (www.site.net) Singer 1.mp3
%f[1,"("]donneTitle 1
%f[1,"("] -donneTitle 1 -
%f[1,"("] - %f[-1,")"]donneTitle 1 - Singer 1.mp3

Pour en savoir plus : modificateur "[]"



Expressions régulières

Je ne vais pas entrer ici dans les détails de la syntaxe.



Pour en savoir plus : expression régulière



Renommer des fichiers "associés"

Certains types de fichiers peuvent être "associés". C'est par exemple le cas des ".srt" avec les ".avi", ".thm" avec ".crw", ".h" avec ".cpp" etc. Seule l'extension change, le nom de base reste identique.

Voici une méthode relativement simple pour réaliser un renommage assurant cette "synchronisation".

Fi1-A.avi, Fi2-B.avi et Fi3-C.avi seront nos fichiers "source".



Comment ça marche ?
Il nous faut remplacer les noms de base des fichiers "srt" par ceux des "avi" qui leur sont associés. Pour réaliser cela nous allons utiliser le modificateur de renommage par groupe.

Pour notre exemple chaque groupe sera composé de deux fichiers : un "avi" et son "srt". Nous choisissons de sélectionner en premier les "avi" puis les "srt". Ainsi, les "avi" seront les premiers membres du groupe et les "srt" les seconds.

Récupérer le nom de base d'un "avi" dans une expression peut être réalisé avec : %<2,1>b

%e est l'extension du fichier en cours de traitement.

Les nouveaux noms des "avi" seront identiques aux noms actuels. Donc pour eux, aucun changement ne sera effectué durant le renommage.

Donc en suivant l'expression sur "1.srt" :

%<2,1>bdonneFi1-A
%<2,1>b.donneFi1-A.
%<2,1>b.%edonneFi1-A.srt

Pour en savoir plus : renommage par groupe



Renommer des fichiers "associés" en les renumérotant

Comment ça marche ?
Une expression de renommage peut être composée de "sous expressions" séparées par des ';' (point-virgule). Elles sont évaluées une par une sur l'ensemble des fichiers. Evidemment, à partir de la deuxième, toutes les variables normalement associées au "Nom actuel" (%f, %e, %N ...) le seront au "Nouveau nom" calculé par la précédente..


Pourquoi ajouter "%e" en début de nom pour ensuite le retirer ?

"%nc" donne un numéro évitant les collisions sans tenir compte du reste de l'expression. Dans notre exemple il faut que l'extension entre dans l'évaluation de cette collision. En en créant une temporairement nous aurons le résultat souhaité.


Donc en suivant l'expression :

IMG_3975.JPGIMG_3975.RAWPIC10222.JPGPIC10222.RAW
%e-Img_%nc.%eJPG-Img_001.JPGJPG-Img_001.RAWJPG-Img_002.JPGRAW-Img_002.RAW
%f[2]Img_001.JPGImg_001.RAWImg_002.JPGImg_002.RAW

Pour en savoir plus : sous-expressions, modificateur "[]"



Renommer avec des chiffres Romains

Vous voulez ajouter le numéro de sélection à vos noms de fichiers mais au lieu de chiffres Arabes vous voulez utiliser des chiffres Romains ou toute autre traduction ou séquence de caractères.



Comment ça marche ?
Comme expliqué ici, la variable "%T" extrait des lignes d'un fichier texte dont le nom lui est donné en paramètre. Pour chacun des fichiers sélectionnés, la ligne extraite est celle correspondant à son numéro de sélection.

Donc, si nous remplissons le fichier "C:\romnum.txt" avec les lignes :
I
II
III
IV
V
VI
...

Alors %T{"C:\\romnum.txt"} sera évaluée en "I" pour le premier fichier, en "II" pour le second fichier, "IV" pour le quatrième etc.. Indirectement les chiffres Arabes ont été convertis en Romains.

Donc, en suivant l'expression sur "DOCUMENT.odt" étant le quatrième fichier sélectionné :

%bdonneDOCUMENT
%b - donneDOCUMENT -
%b - %T{"C:\\romnum.txt"}donneDOCUMENT - IV
%b - %T{"C:\\romnum.txt"}.donneDOCUMENT - IV.
%b - %T{"C:\\romnum.txt"}.%edonneDOCUMENT - IV.odt

Pour en savoir plus : la variable "%T"



Exemples par défaut

La première fois ou vous démarrez Siren (en fait durant la création du fichier de configuration) des exemples sont ajoutés dans les menus "Favoris" et "Outils".