Voici quelques exemples détaillés qui devraient vous aider dans l'écriture d'expressions de renommage.
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_ donne Planet_Mars_ Planet_Mars_%Xdo donne Planet_Mars_20030909_214758 Planet_Mars_%Xdo.jpg donne Planet_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
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 :
%b donne Note %b- donne Note- %b-%dm{"%d-%m-%y"} donne Note-01-02-03 %b-%dm{"%d-%m-%y"}.%e donne Note-01-02-03.txt
Pour en savoir plus : dates
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" :
C:\\Photo\\ | donne | C:\Photo\ | ||
C:\\Photo\\%Xdo{"%Y\\%m\\%d"} | donne | C:\Photo\2003\09\09 | ||
C:\\Photo\\%Xdo{"%Y\\%m\\%d"}\\%b.%le | donne | C:\Photo\2003\09\09\IMG_3975.jpg |
/home/user/Photo/ | donne | /home/user/Photo/ | ||
/home/user/Photo/%Xdo{"%Y/%m/%d"} | donne | /home/user/Photo/2003/09/09 | ||
/home/user/Photo/%Xdo{"%Y/%m/%d"}/%b.%le | donne | /home/user/Photo/2003/09/09/IMG_3975.jpg |
Pour en savoir plus : dates
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_%N donne "Img_002" Img_%N. donne "Img_002." Img_%N.%e donne "Img_002.jpg"
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" :
Img donne "Img" Img%N donne "Img50" Img%N{1,5} donne "Img55" Img%N{1,5}. donne "Img55." Img%N{1,5}.%e donne "Img55.jpg"
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 :
%f donne SONG TITLE.MP3 %Lf donne Song title.mp3
Pour en savoir plus : modification de casse
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 :
%b donne My.preferred.movie %b("."," ") donne My preferred movie %b("."," "). donne My preferred movie. %b("."," ").%e donne My preferred movie.avi
Pour en savoir plus : remplacement de 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" :
%f donne A1B#0302.gif %f(-8) donne 0302.gif
Pour en savoir plus : extraction de 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" :
%b donne A1B#0302 %b(1,-5) donne A1B %b(1,-5). donne A1B. %b(1,-5).%e donne A1B.gif
Pour en savoir plus : extraction de chaîne
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 :
%b donne Song Title 1 - Singer - Site %b[1] donne Song Title 1 %b[2] donne Singer %b[3] donne Site
Si l'indice est négatif, la numérotation part de la fin :
%b[-1] donne Site %b[-2] donne Singer %b[-3] donne Song Title 1
%e, l'extension du fichier vaut "mp3"
Donc en suivant l'expression sur "Song Title 1 - Singer - Site.mp3" :
%b[2] donne Singer %b[2] - donne Singer - %b[2] - %b[1] donne Singer - Song Title 1 %b[2] - %b[1]. donne Singer - Song Title 1. %b[2] - %b[1].%e donne Singer - Song Title 1.mp3
Pour en savoir plus : modificateur "[]"
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 :
%b donne Artist =##= Album =##= Song %b("=##=","-") donne Artist - Album - Song %b("=##=","-")[3] donne Song %b("=##=","-")[3]. donne Song. %b("=##=","-")[3].%e donne Song.mp3
Pour en savoir plus : remplacement de chaîne, modificateur "[]"
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] donne The Beatles %b[1](5) donne Beatles %b[1](5), The - donne Beatles, The - %b[1](5), The - %b[2] donne Beatles, The - Eleanor Rigby %b[1](5), The - %b[2]. donne Beatles, The - Eleanor Rigby. %b[1](5), The - %b[2].%e donne Beatles, The - Eleanor Rigby.mp3
Pour en savoir plus : modificateur "[]", extraction de chaîne
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" :
%f donne Good - Singer - Title 1.mp3 %f[2,0,"-"] donne Singer - Title 1.mp3
Voici une autre solution : %b("-","*",1,1)[2,"*"].%e
Pour en savoir plus : modificateur "[]"
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" :
%f donne Title 1 (www.site.net) Singer 1.mp3 %f[1,"("] donne Title 1 %f[1,"("] - donne Title 1 - %f[1,"("] - %f[-1,")"] donne Title 1 - Singer 1.mp3
Pour en savoir plus : modificateur "[]"
Je ne vais pas entrer ici dans les détails de la syntaxe.
Pour en savoir plus : expression régulière
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>b donne Fi1-A %<2,1>b. donne Fi1-A. %<2,1>b.%e donne Fi1-A.srt
Pour en savoir plus : renommage par groupe
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.JPG | IMG_3975.RAW | PIC10222.JPG | PIC10222.RAW | |||||
%e-Img_%nc.%e | JPG-Img_001.JPG | JPG-Img_001.RAW | JPG-Img_002.JPG | RAW-Img_002.RAW | ||||
%f[2] | Img_001.JPG | Img_001.RAW | Img_002.JPG | Img_002.RAW |
Pour en savoir plus : sous-expressions, modificateur "[]"
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é :
%b donne DOCUMENT %b - donne DOCUMENT - %b - %T{"C:\\romnum.txt"} donne DOCUMENT - IV %b - %T{"C:\\romnum.txt"}. donne DOCUMENT - IV. %b - %T{"C:\\romnum.txt"}.%e donne DOCUMENT - IV.odt
Pour en savoir plus : la variable "%T"
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".