IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Renommer des fichiers en déplaçant des caractères du nom, Passer une date en fin de nom
Options
Stapsounet
posté 20 Dec 2018, 23:01
Message #1


Nouveau Membre


Groupe : Membres
Messages : 37
Inscrit : 24 Sep 2003
Lieu : Dijon
Membre no 9 826



Bonjour,

Je ne sais pas si ce sujet est dans le bon topic, si ce n'est le cas, je m'en excuse...

J'ai tout un dossier de fichiers nommés sous la forme : Date du fichier_Nom du fichier.

Or, pour des raisons pratiques d'usage quotidien, je me rend compte qu'un classement alphabétique serait nettement plus rapide pour m'y retrouver en fait.

Est-il possible d'automatiser un processus pour copier (couper) les n premiers caractères des noms des fichiers et les recoller en fin de nom pour obtenir des fichiers sous la forme : Nom du fichier_Date du fichier ?

J'ai regardé du coté d'automator, mais je n'ai rien trouvé de concluant, j'ai testé le logiciel "RENAME", mais pas de copier coller possible...

Auriez-vous une idée à me suggérer autre que celle de le faire manuellement fichier par fichier ?

Merci d'avance de vos suggestions smile.gif

Ce message a été modifié par Stapsounet - 20 Dec 2018, 23:03.


--------------------
"Dans ce monde, il faut ête un peu trop bon pour l'être assez..." Marivaux ; )
iMac 21,5 fin 2009, 3,06GHz Intel Core 2 Duo, 12Go DDR3, OS X.13.6
Go to the top of the page
 
+Quote Post
flip flop
posté 21 Dec 2018, 13:57
Message #2


Adepte de Macbidouille
*

Groupe : Membres
Messages : 128
Inscrit : 12 Jul 2010
Membre no 156 555



Bonjour, Stapsounet smile.gif

Tu peux faire ça sans problème avec l'utilitaire "A Better Finder Rename".
http://www.publicspace.net/ABetterFinderRename/

Il est payant (20 €) mais tu peux télécharger une version d'évaluation.
Il est en anglais (il n'est pas localisé en français).
En fait, si on comprend un peu l'anglais, cet utilitaire permet de faire à peu près tout et n'importe quoi au niveau de la manipulation des noms de fichiers et dossiers smile.gif

AVERTISSEMENT: Bien évidemment, une fois que tu as choisi tes réglages, je te conseille de faire un essai sur trois ou quatre fichiers pour bien valider le traitement, avant de l'appliquer à tous tes fichiers.
Ou mieux, si ça t'est possible, fais au préalable une copie de sauvegarde de tes fichiers.

Pour ton cas de figure, en prenant pour hypothèse que la date qui est au début du nom de chacun de tes fichiers est sur un nombre fixe (N) de caractères:

. ouvrir "A Better Finder Rename"

. faire un glisser/déposer des fichiers et dossiers dans la partie droite de la fenêtre
Dans cette partie de la fenêtre, l'utilitaire affiche les noms AVANT et APRÈS traitement ("Current Name" et "Change to"), en fonction des réglages choisis dans la partie gauche de la fenêtre. Ça permet de bien comprendre ce qu'on fait.

puis faire les réglages suivants:

. Category —> "Character Positions & Ranges" (position et nombre de caractères)

. Action —> "Move a range of characters to position" (déplacer un certain nombre de caractères)

. onglet "From text position" --> définir le nombre N de caractères à déplacer, puis choisir "From the front"
(pour déplacer les N premiers caractères du nom)

. onglet "To text position" --> choisir 0, puis "From the end"
(pour déplacer ces N caractères à la toute fin du nom [0 caractère à partir de la fin])

. Change —> "only the name"

. Process —> cocher "Files" (Fichiers) et/ou "Folders" (Dossiers) et/ou "Subfolders and their contents" (Sous-dossiers et leurs contenus)

enfin appuyer sur le bouton "Perform Renames".

Tu dis que tes noms de dossiers commencent par une date puis un underscore.
Avec les réglages ci-dessus, tu déplaces la date à la fin du nom. Tu laisses l'underscore au début du nom.
Avec une deuxième passe, tu supprimes l'underscore.
Par exemple avec les réglages suivants:

. Category —> "Text"
. Action —> "Remove text from beginning"
. Remove —> "_" (taper un seul caractère, le caractère underscore)
. Change —> "The file name without the extension"


--------------------
iMac fin 2013 - Mojave
Go to the top of the page
 
+Quote Post
flip flop
posté 21 Dec 2018, 14:22
Message #3


Adepte de Macbidouille
*

Groupe : Membres
Messages : 128
Inscrit : 12 Jul 2010
Membre no 156 555



En fait, Stapsounet, je viens enfin de réaliser que tu veux renommer un fichier Date du fichier_Nom du fichier en Nom du fichier_Date du fichier rolleyes.gif
Il y a donc une petite manipulation en plus à faire au niveau de l'underscore.
Du coup, il te faudrait faire TROIS passes (trois traitements successifs) avec A Better Finder Rename:

. la première, pour rajouter un underscore au début du nom de tes fichiers:
(Date du fichier_Nom du fichier —> _Date du fichier_Nom du fichier)

. la deuxième, pour déplacer les N premiers caractères du nom (incluant le premier underscore) à la fin du nom:
(_Date du fichier_Nom du fichier —> _Nom du fichier_Date du fichier)

. la troisième, pour supprimer l'underscore au début du nom de tes fichiers
(_Nom du fichier_Date du fichier du fichier —> Nom du fichier_Date du fichier)

Les deuxième et troisième passes sont décrites dans mon premier message.
Pour la première passe, voici les réglages:

. Category —> "Text"
. Action —> "Add text to beginning"
. Add —> "_" (taper un seul caractère, le caractère underscore)
. Change —> "The file name without the extension"


--------------------
iMac fin 2013 - Mojave
Go to the top of the page
 
+Quote Post
g4hd
posté 21 Dec 2018, 14:58
Message #4


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 9 751
Inscrit : 9 Nov 2001
Lieu : Pays d’Aix
Membre no 1 255



Intéressant, flip flop.

Si la quantité de changements est limitée (Stapsounet parle de "tout un dossier de fichiers), le travail peut être accompli grâce à une fonction de macOS :
- clic droit sur le dossier en question, puis choisir les fichiers qu'on veut traiter…
- choisir la fonction "Renommer" qui annonce le nombre de fichiers sélectionnés…

La suite consiste à sélectionner les modifs, par étapes successives au besoin.
Comme l'a illustré flip flop :
- ajout d'un underscore au début de chaque fichier,
- copier le champ date et le rajouter à la fin de chaque fichier,
- supprimer ensuite etc.

Si on fait une erreur, c'est facile de revenir en arrière…
dry.gif

Oupssss

Ça n'existe pas dans des anciennes versions d'OS… c'est bien possible.
Sapsounet a un vieux matériel, on dirait.


--------------------
 Mac Studio M1max 32 Go 1 To - Sonoma - Eizo 27" + Nec 21" - usage PAO
 MBp14 M2pro 16 Go 1 To - Sonoma - iPhone 15 128 - iWatch 6
 abonné VVMac
Go to the top of the page
 
+Quote Post
flip flop
posté 21 Dec 2018, 16:12
Message #5


Adepte de Macbidouille
*

Groupe : Membres
Messages : 128
Inscrit : 12 Jul 2010
Membre no 156 555



Oups aussi, g4hd laugh.gif
Je l'avais lu, mais je n'avais pas percuté rolleyes.gif
Le Mac de Stapsounet est sous OS X 10.4.... et les versions d'évaluation de A Better Finder Rename actuellement disponibles ne sont opérationnelles qu'à partir de 10.7.
Au temps pour moi.

g4hd, j'avais déjà jeté un œil sur les facilités du Finder pour renommer les fichiers mais, avec ce que tu dis, je vais aller voir ça de plus près.
Ça m'a l'air plus puissant que ce que je pensais.

[edit]
g4hd, je ne suis pas arrivé à faire ce que veut Stapsounet avec les facilités du Finder, sous El Capitan. sad.gif

Stapsounet, les versions plus anciennes de A Better Finder Rename, compatibles avec OS X 10.4, ne permettaient pas de déplacer des chaines de caractères dans le nom du fichier. sad.gif

Ce message a été modifié par flip flop - 21 Dec 2018, 19:46.


--------------------
iMac fin 2013 - Mojave
Go to the top of the page
 
+Quote Post
Zeltron54
posté 21 Dec 2018, 20:30
Message #6


Adepte de Macbidouille
*

Groupe : Membres
Messages : 171
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Bonjour, Stapsounet

Le plus facile est de faire un petit script applescript.
Je te met ça ci dessous. Lors du lancement le script te demande de sélectionner le dossier à traiter.
Il inverse la partie du nom avant le "_" avec la partie après.
Il traite tous les fichiers y compris dans les sous dossiers.

Il suffit de faire un copié collé du code dans une fenêtre de l'éditeur applescript.

Code
-- Renomme tous les fichiers d'un dossier y compris dans les sous dossiers
-- cherche "_" et inverse devant le "_" avec derriere le "_"
tell application "Finder"
    set chemin to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à renommer"
    my inspecter(chemin)
end tell

on inspecter(un_dossier)
    tell application "Finder"
        -- traitement des fichiers :
        set les_fichiers to files of un_dossier
        repeat with chaque_fichier in les_fichiers
            -- traitement d'un fichier
            tell application "Finder"
                
                
                
                set nom to name of chaque_fichier --récupère le nom du fichier
                set extens to document file nom in un_dossier --recupere l extension du fichier
                set lextension to name extension of extens
                set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
                set AppleScript's text item delimiters to {"."} --récupère la partie avant le dernier "."
                set elements to text items of nom
                set nomcourt to (items 1 thru -2 of elements) as string
                set ancien_nom to nomcourt
                set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
                
                set numero to offset of "_" in ancien_nom -- position du caractere "_" pour traiter le 1ere partie du nom
                set numero to numero - 1
                set debut to characters 1 thru numero of ancien_nom as string
                set debut to result
                
                set blanc to characters 1 thru 1 of debut as string -- on enleve les espaces en debut de la 1ere partie du nom
                repeat while blanc = " "
                    set long to length of debut as integer
                    set debut to characters 2 thru long of debut as string
                    set blanc to characters 1 thru 1 of debut as string
                end repeat
                
                set long to length of debut as integer -- on enleve les espaces en fin de la 1ere partie du nom
                set avantdern to long - 1 as integer
                set blanc to characters long thru long of debut as string
                repeat while blanc = " "
                    set debut to characters 1 thru avantdern of debut as string
                    set long to length of debut as integer
                    set avantdern to long - 1 as integer
                    set blanc to characters long thru long of debut as string
                end repeat
                
                set numero to offset of "_" in ancien_nom -- position du caractere "_"pour traiter le 2eme partie du nom
                set numero to numero + 1
                set fin to characters numero thru end of ancien_nom as string
                set fin to result
                
                set blanc to characters 1 thru 1 of fin as string -- on enleve les espaces en debut de la 2eme partie du nom
                repeat while blanc = " "
                    set long to length of fin as integer
                    set fin to characters 2 thru long of fin as string
                    set blanc to characters 1 thru 1 of fin as string
                end repeat
                set long to length of fin as integer -- on enleve les espaces en fin de la 2eme partie du nom
                set avantdern to long - 1 as integer
                set blanc to characters long thru long of fin as string
                repeat while blanc = " "
                    set fin to characters 1 thru avantdern of fin as string
                    set long to length of fin as integer
                    set avantdern to long - 1 as integer
                    set blanc to characters long thru long of fin as string
                end repeat
                if numero > 1 then
                    set nouveaunom to (fin & "_" & debut & "." & lextension) as string -- le nouveau nom avec 2eme partie+ "_" + 1ere partie + extension
                    
                    set name of file nom of un_dossier to nouveaunom
                end if
            end tell
        end repeat
        -- traitement des dossiers :
        set les_dossiers to folders of un_dossier
        repeat with chaque_dossier in les_dossiers
            -- traitement d'un dossier
            my inspecter(chaque_dossier)
        end repeat
    end tell
end inspecter
tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
ch21
posté 21 Dec 2018, 23:44
Message #7


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 12 341
Inscrit : 4 Nov 2003
Lieu : 21000 ou 22740
Membre no 11 306



Citation (Zeltron54 @ 21 Dec 2018, 20:30) *

Le plus facile est de faire un petit script applescript.


Trop facile, c'est vrai… tongue.gif

Je suis toujours impressionné par ce genre de trucs cool.gif


--------------------
de l'Apple IIGS (1987) en GS/OS System 6.0.1 au MBP (2012) en Mojave et Mac Mini I7 (2012) en Mojave et Ventura avec OCLP
Go to the top of the page
 
+Quote Post
Stapsounet
posté 22 Dec 2018, 17:08
Message #8


Nouveau Membre


Groupe : Membres
Messages : 37
Inscrit : 24 Sep 2003
Lieu : Dijon
Membre no 9 826



Merci à tous pour vos retours, je m'y met ce we et je vous dis ce qu'il en est. Mais je n'ai aucun doute que je trouverais mon bonheur avec toutes les solutions proposées !!!

PS: merci aussi à vous de m'avoir fait remarquer que ma signature n'était pas à jour unsure.gif oups ! Je suis en fait sous High Sierra... Mais même avec cette version et le menu "renommer" du Finder, je n'ai pas réussi...

Passez de bonnes fêtes de fin d'année !

Ce message a été modifié par Stapsounet - 22 Dec 2018, 17:09.


--------------------
"Dans ce monde, il faut ête un peu trop bon pour l'être assez..." Marivaux ; )
iMac 21,5 fin 2009, 3,06GHz Intel Core 2 Duo, 12Go DDR3, OS X.13.6
Go to the top of the page
 
+Quote Post
ades
posté 22 Dec 2018, 17:18
Message #9


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 845
Inscrit : 23 Nov 2002
Membre no 4 808



je viens de tester le script (2mn 28 s. pour 4 fichiers montre en main) ça semble parfait.
Le plus dur, et le plus long, a été de retrouver l'éditeur de script wink.gif ; la modif des noms de fichiers est quasi instantanée.


--------------------
MBP 15 unibody 2,4 Ghz , 4Go ssd 256 Go, dual boot OSX10.9.5-Linux mint
MacMini late 2012, i7 2,3Ghz, 16Go, 2 ssd 1to, OSX Sonoma 14.4 (OpencoreLegacy Patcher 1,4.3)
Go to the top of the page
 
+Quote Post
Stapsounet
posté 22 Dec 2018, 18:06
Message #10


Nouveau Membre


Groupe : Membres
Messages : 37
Inscrit : 24 Sep 2003
Lieu : Dijon
Membre no 9 826



500 fichiers renommés en 15 minutes !!! J'ai acheté a better finder rename, qui a une option "multi-step"... Donc pas besoin de 3 ou 4 passes, juste d'implémenter 4 étapes consécutives et ça s'est fait d'un coup !
Bon, c'est sûr qu'en comparaison de l'édition d'un script, ça fait petit joueur... Mais du coup, j'ai même pu personnaliser quelques fichiers en passant et je vais quand même garder le script sous la main histoire de décoder et de comprendre. Il serait peut-être temps que je m'y mette un peu !

Encore merci à vous tous biggrin.gif

Ce message a été modifié par Stapsounet - 22 Dec 2018, 18:08.


--------------------
"Dans ce monde, il faut ête un peu trop bon pour l'être assez..." Marivaux ; )
iMac 21,5 fin 2009, 3,06GHz Intel Core 2 Duo, 12Go DDR3, OS X.13.6
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 28th April 2024 - 13:15