Modifier la date (création-modification-ouverture) dans des dossiers

Bonjour,
On doit pouvoir écrire un script pour faire çà, je vais regarder.

Par contre il faudra ajouter un numéro d'ordre derrière la date, sinon tu auras plusieurs photos prisent le même jour qui vont se retrouver avec le même nom (donc erreur ! ), un numéro à 4 chiffres ?

Tu ne réponds pas à mes questions mettre un exemple:
17072001-IMG_0003.jpg devient:
20010717 0001.jpg ou --> 2001-07-17-0001.jpg ou--> 2001_07_17_0001.jpg ou ?????

Autre question les photos à renommer sont toutes dans un seul dossier ? avec des sous dossiers ? et y a t'il des fichiers autres que les photos dans ces dossiers ?

dès que j'ai ces infos je regarde...
 
Bonjour,
On doit pouvoir écrire un script pour faire çà, je vais regarder.

Par contre il faudra ajouter un numéro d'ordre derrière la date, sinon tu auras plusieurs photos prisent le même jour qui vont se retrouver avec le même nom (donc erreur ! ), un numéro à 4 chiffres ?

Tu ne réponds pas à mes questions mettre un exemple:
17072001-IMG_0003.jpg devient:
20010717 0001.jpg ou --> 2001-07-17-0001.jpg ou--> 2001_07_17_0001.jpg ou ?????

Autre question les photos à renommer sont toutes dans un seul dossier ? avec des sous dossiers ? et y a t'il des fichiers autres que les photos dans ces dossiers ?

dès que j'ai ces infos je regarde...
Bonjour,
j'exporte les photos choisies dans Lightroom vers un dossier unique. Effectivement, j'ai rencontré des photos avec la même date et j'ai ajouté un signe distinctif (lors de ma "conversion" manuelle). Donc effectivement un index sera bienvenu.
2001-07-17-001.jpg serait le bon format.
Donc conversion = 17072001-IMG_1857.jpg devient 2001-07-17-001.jpg ou 2001-07-17-002 s'il y a une deuxième photo à la même date etc. si d'autres photos à la même date. Dans la série que j'ai traitée manuellement, j'ai trouvé qq cas où il y avait 5 photos à la même date ; mais dans d'autres cas cela pourrait être plus. En fait un numéro d'ordre convient bien également. Quatre chiffres permettront de traiter tous les cas.
Merci
 
Ok !
dès que j'ai un peu de temps je te prépare un script...
 
je te mets un script a essayer.

ATTENTION:
A tester sur une copie (pas de retour en arrière possible!)
le dossier ne doit contenir que des fichiers avec le nom commençant par JJMMAAAA .
Si tu as déjà renommé des fichiers, les enlever du dossier...

Pour son utilisation:
  • Ouvrir l’application éditeur de script qui se trouve dans application—> utilitaires.
  • Faire un copier coller du script dans une fenêtre de l’application
  • Enregistrer sous …. pour le conserver !
-Cliquer sur exécuter en haut à gauche
Le script de demande de sélectionner le dossier à traiter
Il te met un message de fin quand il a terminé.

Dis moi si c'est OK ou si problème

Bloc de code:
-- renomme les fichiers du dossier 01102022->2022-10-01-0001
tell application "Finder"
    set Chemin to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à redater"
   
    set les_fichiers to files of Chemin
    repeat with chaque_fichier in les_fichiers
        set nom to name of chaque_fichier
        set lextension to name extension of chaque_fichier
       
        set lejour to text items 1 thru 2 of nom as string
        set lemois to text items 3 thru 4 of nom as string
        set lannee to text items 5 thru 8 of nom as string
        set numero to 1
        set lenumero to text items 1 thru 4 of ("000" & numero) as string
        set newnom to lannee & "-" & lemois & "-" & lejour & "-" & lenumero & "." & lextension
        set aa to Chemin as string
        set newchemin to aa & newnom
        repeat
            if exists newchemin then
                set numero to numero + 1
                set lenumero to text items 1 thru 4 of ("000" & numero) as string
                set newnom to lannee & "-" & lemois & "-" & lejour & "-" & lenumero & "." & lextension
                set newchemin to aa & newnom
            else
                exit repeat
            end if
        end repeat
        set name of chaque_fichier to newnom
    end repeat
end tell

tell application "Finder"
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
 
Dernière édition:
je te mets un script a essayer.

ATTENTION:
A tester sur une copie (pas de retour en arrière possible!)
le dossier ne doit contenir que des fichiers avec le nom commençant par JJMMAAAA .
Si tu as déjà renommé des fichiers, les enlever du dossier...

Pour son utilisation:
  • Ouvrir l’application éditeur de script qui se trouve dans application—> utilitaires.
  • Faire un copier coller du script dans une fenêtre de l’application
  • Enregistrer sous …. pour le conserver !
-Cliquer sur exécuter en haut à gauche
Le script de demande de sélectionner le dossier à traiter
Il te met un message de fin quand il a terminé.

Dis moi si c'est OK ou si problème

Bloc de code:
-- renomme les fichiers du dossier 01102022->2022-10-01-0001
tell application "Finder"
    set Chemin to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à redater"
  
    set les_fichiers to files of Chemin
    repeat with chaque_fichier in les_fichiers
        set nom to name of chaque_fichier
        set lextension to name extension of chaque_fichier
      
        set lejour to text items 1 thru 2 of nom as string
        set lemois to text items 3 thru 4 of nom as string
        set lannee to text items 5 thru 8 of nom as string
        set numero to 1
        set lenumero to text items 1 thru 4 of ("000" & numero) as string
        set newnom to lannee & "-" & lemois & "-" & lejour & "-" & lenumero & "." & lextension
        set aa to Chemin as string
        set newchemin to aa & newnom
        repeat
            if exists newchemin then
                set numero to numero + 1
                set lenumero to text items 1 thru 4 of ("000" & numero) as string
                set newnom to lannee & "-" & lemois & "-" & lejour & "-" & lenumero & "." & lextension
                set newchemin to aa & newnom
            else
                exit repeat
            end if
        end repeat
        set name of chaque_fichier to newnom
    end repeat
end tell

tell application "Finder"
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
Excusez le temps de réponse : j'avais bcp de manipulations à faire avant de pouvoir tester : ça fonctionne impeccablement.
Un grand merci
 
Ok ! Content pour toi …
 
Bonjour, j'ai une série de fichiers dont le nom est la bonne date/heure du fichier.
Je souhaiterais utiliser votre script pour récupérer le bon horodatage dans le nom de fichier et l'inscrire dans date de création.
Le format des nom est le suivant " 2002-09-29 09-37-06.mov".
Auriez-vous l'amabilité de modifier votre scripte pour que je puisse l'utiliser sur plusieurs fichiers contenus dans un même répertoire
D'avance merci
 
bonjour,

Donc en résumé faire le contraire de ce que fait le script, récupérer la date qui est dans le nom et inscrire cette date dans les données exif des photos, c'est bien ça ?

pour être sur:
1 - que contient exactement le nom de la photo (que la date ou, la date et un nom ou... et si j'en crois ta demande il y a un espace en début ?)
2 - tu veux changer quelles dates dans les données exif il y a : la date de prise de vue, la date du fichier, la date du dernier accès et bien d'autres date ?

3 As- tu déjà installé l'application exiftool ?
si oui , dans le terminal entre la commande "exiftool" suivi d'un espace puis fait un glissé déposé d'un fichier et met une copie de la réponse pour voir quelle date de création ou autres existe.
 
Bonjour,

J'ai donc écris un petit script qui :
  • Récupère le nom du fichier
  • enlève les espaces qui pourrais se trouver en début du nom
  • récupère la date qui se trouve en début du nom sous la forme "2002-09-29 09-37-06"
  • met cette date au format utilisé par la commande "setfile"
  • se sert de cette date pour modifier les dates de création et de modification du fichier

J'espère que j'ai bien compris votre demande !

pour utiliser ce script:
Ouvrir l’application “Editeur de script” qui est dans Application—>Utilitaires
Choisir le bouton en bas à gauche “Nouveau document”, dans la fenêtre qui s’ouvre faire un copier-coller du script.
Cliquer sur le bouton "triangle play" en haut à droite “Exécuter”

Quand le script à terminé il prévient avec un petit message.

Je vous conseille d'utiliser ce script sur une copie, afin qu"en cas de problème les fichiers originaux restent intacts.

Dite-moi si c'est bon !

Bloc de code:
tell application "Finder"
    set Chemin to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à redater"
    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
            
            set lenom to name of chaque_fichier
            
            repeat --pour supprimer les espace en début du nom
                if text item 1 of lenom is " " then
                    set lenom to characters 2 thru -1 of lenom as string
                    exit repeat
                end if
            end repeat
            
            set yyyy to text 1 thru 4 of lenom
            set mm to text 6 thru 7 of lenom
            set jj to text 9 thru 10 of lenom
            set hh to text 12 thru 13 of lenom
            set mn to text 15 thru 16 of lenom
            set ss to text 18 thru 19 of lenom
            
            set ladate to mm & "/" & jj & "/" & yyyy & " " & hh & ":" & mn & ":" & ss
            
            
            set nom to chaque_fichier as string
            
            set lacommande1 to "setfile -m  " & "'" & ladate & "'" & " " & quoted form of POSIX path of nom
            set lacommande2 to "setfile -d  " & "'" & ladate & "'" & " " & quoted form of POSIX path of nom
            do shell script lacommande1
            do shell script lacommande2
            
        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"
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell