renommer fichier, renommer des fichiers en lots |
Bienvenue invité ( Connexion | Inscription )
renommer fichier, renommer des fichiers en lots |
7 Mar 2017, 13:22
Message
#1
|
|
Macbidouilleur de bronze ! Groupe : Membres Messages : 367 Inscrit : 26 Nov 2001 Membre no 1 406 |
Bonjour,
renommer par exemple: Fichier de test 30.12.2017 pour obtenir: 2017.12.30 Fichier test Quel soft peut faire ça ? D'avance merci -------------------- Mac Pro 2010, Cinema Display 30", MacBook Pro 2015, Mac mini 2010).
|
|
|
7 Mar 2017, 13:39
Message
#2
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 19 343 Inscrit : 22 Jul 2004 Lieu : Louvain-la-Neuve (Gaule Gelbique) Membre no 21 291 |
Bonjour,
Tu pourrais essayer A Better Finder Rename : http://www.publicspace.net/ABetterFinderRename/ -------------------- ¶ MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS 12.6 “Monterey” ¶ MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8 ¶ Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C ¶ B-Box 3 + HP LaserJet 4000 N
¶ La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même. … Les corsaires mettent en berne… |
|
|
7 Mar 2017, 13:50
Message
#3
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 1 339 Inscrit : 2 May 2005 Membre no 38 287 |
NameChanger, super…
|
|
|
7 Mar 2017, 14:10
Message
#4
|
|
Adepte de Macbidouille Groupe : Membres Messages : 164 Inscrit : 19 Jun 2004 Membre no 20 190 |
Il y a AppleScript ou en programmation plus simple à appréhender LiveCode gratuit le successeur d'HyperCard
ci-joint un exemple en AppleScript, à adapter suivant ses besoins : -- Add a given suffix to all files of a given folder - no embedded folder level -- display dialog "You may use the application «A better Finder Rename»" buttons {"Continue", "Stop"} default button 2 if the button returned of the result is "Stop" then return tell application "Finder" set AppleScript's text item delimiters to "" -- security choose folder with prompt "Choisissez le dossier concerné" -- Only one level set dossier_selectionne to result as string open the folder dossier_selectionne display dialog "Quel suffix à ajouter" default answer "suffix" buttons {"Cancel", "OK"} default button 2 copy the result as list to {text_returned, button_pressed} if button_pressed is "OK" then set suffix to " " & text_returned else return end if set NbFiles to count of file of folder dossier_selectionne repeat with x from 1 to NbFiles set nom_de_document to name of file x of folder dossier_selectionne set AppleScript's text item delimiters to "." set les2partie to (every text item of nom_de_document) -- création de la liste set item1 to (item 1 of les2partie) & suffix & "." set name of file x of folder dossier_selectionne to item1 & (item 2 of les2partie) end repeat set AppleScript's text item delimiters to "" -- retour à la normal end tell Un autre exemple de Livecode "Renumérote tous les noms de fichier d'un dossier". c'est beaucoup plus lisible. 18 jan 2016 - V1.0 Copyright Alain Le Gallou Renumérote tous les noms de fichier d'un dossier xx Résultat dans un dossier xxBis Ne traite que les fichiers de données .jpg .txt .... pas les applications Mettre la logique de changement de nom du fichier dans la function newFileName Local numero = 100 -- départ de la nouvelle numérotation on mouseUp answer folder "Select input folder Path via the Finder" if the result is "cancel" then exit mouseUp else put it into folderPath --> /Users/alg/Desktop/aWorking set the defaultFolder to folderPath put the files into listFileName -- The list of all fileName -- Suppression des fichiers systèmes (.DS_Store, etc) repeat with i = 1 to the number of lines of listFileName If the first char of line i of listFileName is "." then delete line i of listFileName end repeat -- Create the new folder container xxxBis put folderPath &"Bis" into folderPathBis if there is no folder folderPathBis then create folder folderPathBis else alreadyExist -- Define the complet folder path for URL command put "binfile:" & folderPath & slash into folderDepart -- "binfile:/Users/alg/Desktop/aTest/" put "binfile:" & folderPath & "Bis" & slash into folderToCopy -- "binfile:/Users/alg/Desktop/aTestBis/" -- Copy and change file name repeat with i = the number of lines of listFileName down to 1 -- From last to first put line i of listFileName into oneFileName put newFileName (oneFileName) into oneFileNameNew -- change file name put url(folderDepart & oneFileName) into url(folderToCopy & oneFileNameNew) -- Copy end repeat set the defaultFolder to folderPathBis --Debug put the files into msg --Debug revSpeak “done” end mouseUp function newFileName oneFileName -- Ici tout ce que vous voulez modifier sur le nom de fichier delete char 1 to 6 of oneFileName -- début "file10" put "file" & numero & oneFileName into oneFileNameNew --> 101xxxx add 1 to numero return oneFileNameNew end newFileName on alreadyExist answer "The folder already exit, do you want to continu" with "Yes" or "Cancel" if it is "Cancel" then exit alreadyExist end alreadyExist ------------------------------------------------ put the number of lines of listFileName into numberOfLine put url("binfile:/Users/alg/Desktop/aTest/" & oneFileName ) \ into url("binfile:/Users/alg/Desktop/aTestbis/" & aa) --if the result is "can't open directory" then boom5 revCopyFile fileToCopy, folderPathBis set the text of card field "working" to listFileName show card field "working" -------------------- Alain Le Gallou site, HackIntosh GA-Z170X-Gaming 5 sous High Sierra, GTX960, HackIntosh Tutoriel pour NUC6i3 et GA-Z170X-Gaming 5, iMac27 2009 salon HiFi, MacBook Air V1.
|
|
|
7 Mar 2017, 14:56
Message
#5
|
|
Macbidouilleur de bronze ! Groupe : Membres Messages : 490 Inscrit : 3 Apr 2005 Lieu : paris 11 Membre no 36 455 |
pourquoi faire compliqué quand on peut faire simple :
name changer, gratuit, simple, rapide et efficace >> https://mrrsoftware.com/namechanger/ -------------------- MacPro 5.1 2x 2.93 GHz 6 core (2010-2012) - Ram 52 Go - OS 10.13.6 - DD 2x 4To + DD 2To + SSD 1To + SSD 500Go - ATI Radeon HD 5870
Macbook Pro M1 Pro 14" (2021) / CPU 8 cœurs / GPU 14 cœurs / 16Go mémoire unifiée / 512 go ssd Macbook Pro Retina 13" (early 2015) / 2.7 Ghz core i5 / Ram 8 Go / SSD 256Go / OS 10.15.7 MacPro 3.1 2x 2.8 GHz (2008) - Ram 14 Go - OS 10.8.5 - DD 4x 2 To - Pioneer 117F un vieux graveur ide Samsung (pas glop) - ATI Radeon HD 5770 [en sommeil...] Mac Mini (late 2014) / 1.4 GHz Intel Core i5 double coeur / Ram 4 Go / DD 500 Go [/s][HS > changement SSD + système en cours] |
|
|
7 Mar 2017, 16:45
Message
#6
|
|
Adepte de Macbidouille Groupe : Membres Messages : 164 Inscrit : 19 Jun 2004 Membre no 20 190 |
Par ce que NameChanger, à ma connaissance et je viens de le tester, va mettre la même date pour tous les fichiers du dossier.
cela ne marchera pas pour cet exemple d'un dossier avec les deux fichiers suivants : Fichier 1 " test 30.12.2017" pour obtenir: "2017.12.30 test" Fichier 2 " testAA 4.9.2017" pour obtenir: "2017.9.4 testAA" là il faut pour chaque fichier récupérer la valeur du mois, du jour et de l'année pour mettre la même date en fichier de sortie. -------------------- Alain Le Gallou site, HackIntosh GA-Z170X-Gaming 5 sous High Sierra, GTX960, HackIntosh Tutoriel pour NUC6i3 et GA-Z170X-Gaming 5, iMac27 2009 salon HiFi, MacBook Air V1.
|
|
|
7 Mar 2017, 17:55
Message
#7
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 11 624 Inscrit : 25 Nov 2006 Lieu : Arda 🌍 Membre no 73 852 |
Le Finder tout simplement ?
-------------------- |
|
|
7 Mar 2017, 19:20
Message
#8
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 993 Inscrit : 3 Nov 2002 Lieu : Overijse - Belgique Membre no 4 477 |
Bonjour, renommer par exemple: Fichier de test 30.12.2017 pour obtenir: 2017.12.30 Fichier test Quel soft peut faire ça ? D'avance merci Difficile de t'aider sur base d'un seul exemple! - Est-ce que tous les fichiers que tu dois traiter auront la même syntaxe de base? La même longueur? - Combien de fichiers à traiter? Quelle est la fréquence de changement de date? - Quel process génère le nom des fichiers? S'il y a trop de variantes, à mon avis, seul un script complexe, développé pour ton usage, pourra tout faire en une seule fois. Sinon, je crains qu'il ne faille travailler étape par étape avec des logiciels comme File Renamer, NameChanger, etc. Dans notre esprit, et dans ton exemple, on pense que c'est simple: - Déplacer la partie textuelle après la date - Présenter la date suivant le monde année.mois.jour Mais, la majorité des logiciels pour renommer (si pas tous) n'ont aucune intelligence artificielle pour pouvoir travailler de cette façon. Mais cela arrivera certainement, dans un avenir proche. -------------------- MacBook Air 13" 1.8 Ghz Core i5 - 8Gb - SSD 256 Gb - OS X.10.14.6 / Smartphone: Xiaomi Redmi 5 Note sous Android 9 entièrement synchronisé avec les services Google
Réflexe indispensable à avoir... faire des backups réguliers!!! Utilitaires vivement recommandés: Onyx (Outil de maintenance) - Etrecheck (Outil d'analyse du système) - Malwarebytes (Anti-malwares - la version gratuite suffit largement) Mon gestionnaire de mots de passe "coup de coeur" : BitWarden |
|
|
8 Mar 2017, 14:59
Message
#9
|
|
Macbidouilleur de bronze ! Groupe : Membres Messages : 367 Inscrit : 26 Nov 2001 Membre no 1 406 |
Bonjour,
Un grand merci pour vos infos. legallou: c'est exactement le problème ? 1200 fichiers nommés: nom + date(jj.mm.aaaa) noms et dates= différents pour chaque fichier Extension= .pdf Il faudrait pourvoir faire une concaténation des données: date(aaaa.mm.jj) + 1 espace + nom du fichier(supprimer la date à la fin du nom) Nom: Achat TimeCapsule 21.09.2016 -> 2016.09.21 Achat TimeCapsule Les soft proposés sont incapables de faire cela; malheureusement... -------------------- Mac Pro 2010, Cinema Display 30", MacBook Pro 2015, Mac mini 2010).
|
|
|
8 Mar 2017, 18:13
Message
#10
|
|
Adepte de Macbidouille Groupe : Membres Messages : 171 Inscrit : 15 Mar 2008 Lieu : Lorraine Membre no 110 156 |
Bonjour phmitch
Si tous le fichiers ont bien la même structure (nom + " " + jj.mm.aaaa.extension) et qu'is sont tous dans un dossiers( même avec sous dossiers) et qu'il n'y ait pas d'autres fichiers que ceux à renommer, essai ce script. Script à copier coller dans l'éditeur de script. Il te demande de sélectionner le dossier à traiter et change les noms de TOUS les fichiers trouvés. Un conseil essai avec une copie... En espérant que cela te convienne. 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 {" "} --récupère la partie avant le dernier " " set elements to text items of ancien_nom set nomcourt to (items 1 thru -2 of elements) as string set debut to nomcourt set findate to (items -1 thru -1 of elements) as string -- recupére apres le dernier " " set AppleScript's text item delimiters to {"."} --récupère les elements de date set elements to text items of findate set lannee to (item 3 of elements) as string set lemois to (item 2 of elements) as string set lejour to (item 1 of elements) as string set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur set nouveaunom to (lannee & "." & lemois & "." & lejour & " " & debut & "." & lextension) as string -- le nouveau nom set name of file nom of un_dossier to nouveaunom 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 |
|
|
9 Mar 2017, 10:34
Message
#11
|
|
Adepte de Macbidouille Groupe : Membres Messages : 164 Inscrit : 19 Jun 2004 Membre no 20 190 |
@Zeltron54 Félicitation ton script est élégante et assez simple pour de l'AppleScript
@phmitch est-ce que le mois et le jour est toujours en deux lettres où tu peux avoir 4.5.2016 -------------------- Alain Le Gallou site, HackIntosh GA-Z170X-Gaming 5 sous High Sierra, GTX960, HackIntosh Tutoriel pour NUC6i3 et GA-Z170X-Gaming 5, iMac27 2009 salon HiFi, MacBook Air V1.
|
|
|
9 Mar 2017, 15:20
Message
#12
|
|
Adepte de Macbidouille Groupe : Membres Messages : 164 Inscrit : 19 Jun 2004 Membre no 20 190 |
Ci-joint une version en LiveCode. Je n'ai pas utilisé la technologie des offsets, ce qui donne un code beaucoup plus bavard, mais aussi ce qui permet d'être indépendante du caractère de séparation du mois jour année dans la date. Il peut même être présent dans le titre.
J'ai fait juste un minimum de test car je dois m'absenter. ------------------------------------------------ 9 mars 2017 - V1.0 Copyright Alain Le Gallou Ce programme transforme le nom de fichier de "toto 01.04.2017" en "2017-04-01 toto" ou nom de fichier de "toto 1.4.2017" en "2017-4-1 toto" avec inversion des jours mois année de la date pour permettre un tri correct du Finder Résultat par sécurité dans un dossier séparé xxBis Ne traite que les fichiers de données .jpg .txt .... pas les applications Fonctionne quel que soit le séparateur dans la date entre jours mois année pour modification de la logique: C'est dans la function newFileName Local nombreDeFichierFait Local separateur = "_" -- Choix du caractère de séparation année, mois, jour on mouseUp put the defaultFolder into intitialDefaultFolder -- save put 0 into nombreDeFichierFait -- Pour compter le nombre de fichiers exécutées answer folder "Selectionnez le dossier à traiter dans Finder" if the result is "cancel" then exit mouseUp else put it into folderPath --> /Users/alg/Desktop/aWorking set the defaultFolder to folderPath put the files into listFileName -- The list of all fileName -- Suppression des fichiers systèmes (.DS_Store, etc) repeat with i = 1 to the number of lines of listFileName If the first char of line i of listFileName is "." then delete line i of listFileName end repeat -- Create the new folder container xxxBis put folderPath &"Bis" into folderPathBis if there is no folder folderPathBis then create folder folderPathBis else alreadyExist -- Define the complet folder path for URL command put "binfile:" & folderPath & slash into folderDepart -- "binfile:/Users/alg/Desktop/aTest/" put "binfile:" & folderPath & "Bis" & slash into folderToCopy -- "binfile:/Users/alg/Desktop/aTestBis/" -- Copy and change file name repeat with i = 1 to the number of lines of listFileName put line i of listFileName into oneFileName put newFileName (oneFileName) into oneFileNameNew -- change file name put url(folderDepart & oneFileName) into url(folderToCopy & oneFileNameNew) -- Copy the file end repeat set the defaultFolder to intitialDefaultFolder -- Restaure revSpeak “Done” answer nombreDeFichierFait & " was treated" end mouseUp function newFileName oneFileName -- Ici tout ce que vous voulez modifier sur le nom de fichier repeat with k = the number of chars of oneFileName down to 1 -- From last to first if char k of oneFileName is "." then exit repeat else delete char k of oneFileName -- <Elimination de .jpg .pdf end repeat delete last char of oneFileName -- le point de .jpg reste "nom 02.08.2017" --année put the number of chars of oneFileName into lastChar put char lastChar-3 to lastChar of oneFileName into annee delete char lastChar-4 to lastChar of oneFileName -- reste "nom 02.08" ou "nom 2.8" --mois put the number of chars of oneFileName into lastChar if char lastChar-1 of oneFileName is in "0,1,2,3,4,5,6,7,8,9" then -- mois à 2 chiffres .08 put char lastChar-1 to lastChar of oneFileName into mois delete char lastChar-2 to lastChar of oneFileName -- reste "nom 02" else put char lastChar of oneFileName into mois -- mois à 1 chiffre .8 delete char lastChar-1 to lastChar of oneFileName end if --jour put the number of chars of oneFileName into lastChar if char lastChar-1 of oneFileName is in "0,1,2,3,4,5,6,7,8,9" then --"nom 02" put char lastChar-1 to lastChar of oneFileName into jour delete char lastChar-1 to lastChar of oneFileName else put char lastChar of oneFileName into jour --"nom 2" delete char lastChar of oneFileName end if delete last char of oneFileName -- le blanc Put annee & separateur & mois & separateur & jour & " " &oneFileName into oneFileNameNew put oneFileNameNew into msg -- debug add 1 to nombreDeFichierFait return oneFileNameNew end newFileName on alreadyExist answer "The folder already exit, do you want to continu" with "Yes" or "Cancel" if it is "Cancel" then exit alreadyExist end alreadyExist ------------------------------------------------ Ce message a été modifié par legallou - 9 Mar 2017, 15:21. -------------------- Alain Le Gallou site, HackIntosh GA-Z170X-Gaming 5 sous High Sierra, GTX960, HackIntosh Tutoriel pour NUC6i3 et GA-Z170X-Gaming 5, iMac27 2009 salon HiFi, MacBook Air V1.
|
|
|
9 Mar 2017, 18:30
Message
#13
|
|
Adepte de Macbidouille Groupe : Membres Messages : 164 Inscrit : 19 Jun 2004 Membre no 20 190 |
Dans ton cas plus simple avec le point comme séparateur, les mois et jours sur deux caractères, pas de point dans le titre, et un blanc qui sépare le titre de la date l'extraction de la date devient beaucoup plus simple, car on peut utiliser les offsets comme dans l'exemple AppleScript.
Ci-joint un petit test a adapter dans la programmation précédente. ------------------------------------------------ -- si separateur "." et pas de point présent dans le titre -- et mois, jour sur 2 caractères -- L'utilisation des offsets est possible Local separateur = "." on mouseUp put "toto 02.11.2017.jpg" into maDate put partieGauche (maDate) into titreJour --"toto 02" put partieDroite (maDate) into moisAn -- "11.2017.jpg" --jour put " " into separateur put partieDroite (titreJour) into jour --mois put "." into separateur -- Retour au point comme séparateur put partieGauche (moisAn) into mois -- année put partieDroite (moisAn) into reste -- "2017.jpg" put partieGauche (reste) into année put année & separateur & mois & separateur & jour into msg end mouseUp function partieGauche dataIn put offset (separateur, dataIn) into offsetPosition put char 1 to offsetPosition-1 of dataIn into partieGauche return partieGauche end partieGauche function partieDroite dataIn put the number of chars of dataIn into lastChar put offset (separateur, dataIn) into offsetPosition put char offsetPosition+1 to lastChar of dataIn into aDroite return aDroite end partieDroite -------------------- Alain Le Gallou site, HackIntosh GA-Z170X-Gaming 5 sous High Sierra, GTX960, HackIntosh Tutoriel pour NUC6i3 et GA-Z170X-Gaming 5, iMac27 2009 salon HiFi, MacBook Air V1.
|
|
|
10 Mar 2017, 11:25
Message
#14
|
|
Adepte de Macbidouille Groupe : Membres Messages : 164 Inscrit : 19 Jun 2004 Membre no 20 190 |
Comme il pleuvait, je suis resté au chaud et je vous ai fait le package complet à télécharger ici :
http://www.legallou.com/Mac/LiveCode/Date-...-Inversion.html Rappel, LiveCode est gratuit pour une utilisation personnelle. livecode.org Contactez-moi en privé si vous avez un souci. Email alain sur mon domaine legallou.com -------------------- Alain Le Gallou site, HackIntosh GA-Z170X-Gaming 5 sous High Sierra, GTX960, HackIntosh Tutoriel pour NUC6i3 et GA-Z170X-Gaming 5, iMac27 2009 salon HiFi, MacBook Air V1.
|
|
|
12 Mar 2017, 12:04
Message
#15
|
|
Macbidouilleur de bronze ! Groupe : Membres Messages : 367 Inscrit : 26 Nov 2001 Membre no 1 406 |
Bonjour legato,
@phmitch est-ce que le mois et le jour est toujours en deux lettres où tu peux avoir 4.5.2016 Non, la date est toujours sous la forme 00.00.0000 Encore un grand merci. Je vais tester la solution au plus vite. -------------------- Mac Pro 2010, Cinema Display 30", MacBook Pro 2015, Mac mini 2010).
|
|
|
14 Mar 2017, 20:32
Message
#16
|
|
Adepte de Macbidouille Groupe : Membres Messages : 171 Inscrit : 15 Mar 2008 Lieu : Lorraine Membre no 110 156 |
@phmitch Bonsoir,
As-tu testé les différentes solutions ? 1- celle de legallou en livecode en #14 (perso un problème ça ne renomme pas dans les sous-dossier) 2 - la mienne en applescript en #10 (si problèmes, lesquels que l'on adapte à ton besoin) -------------------- 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 |
|
|
Nous sommes le : 18th April 2024 - 10:32 |