IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Modifier la date de fichiers par rapport à d'autres [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre régulier Avatar de jack554
    Inscrit en
    Février 2003
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 192
    Points : 106
    Points
    106
    Par défaut Modifier la date de fichiers par rapport à d'autres
    Bonjour à tou.te.s !

    J'ai une liste de fichiers comme ça :

    C:\temp\dir
    22/04/2019 10:00 24 624 418 fichier1.doc
    04/06/2021 09:30 24 624 582 fichier1.zip

    02/05/2019 04:30 12 962 433 fichier2.doc
    04/06/2021 09:30 12 954 359 fichier2.zip

    07/05/2019 01:00 13 419 085 fichier3.doc
    04/06/2021 09:30 13 410 857 fichier3.zip

    On voit que les fichiers .doc ont été tous zippés à la même date (ici 04/06/2021). Or je voudrais leur donner la date du fichier .doc d'origine et obtenir ça :

    22/04/2019 10:00 24 624 418 fichier1.doc
    22/04/2019 10:00 24 624 582 fichier1.zip

    02/05/2019 04:30 12 962 433 fichier2.doc
    02/05/2019 04:30 12 954 359 fichier2.zip

    07/05/2019 01:00 13 419 085 fichier3.doc
    07/05/2019 01:00 13 410 857 fichier3.zip

    J'avoue que je suis très peu familier avec les commandes batch et que je ne sais pas dans quelle direction chercher, ni même s'il est possible de faire ça ...

    Merci pour vos idées et suggestions.
    Jack.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 546
    Points : 1 084
    Points
    1 084
    Par défaut
    Bonjour,

    Tu peux réaliser cette opération à l'aide de la commande TOUCH disponible ici : https://sourceforge.net/projects/tou...2/files/v1.21/

    Un exemple d'utilisation correspondant à ton problème serait :
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    touch -m -r recette_fromage_frais.pdf -- recette_fromage_frais.zip

    Il ne te reste plus qu'à créer une boucle pour traiter tous tes fichiers en une fois.

  3. #3
    Membre régulier Avatar de jack554
    Inscrit en
    Février 2003
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 192
    Points : 106
    Points
    106
    Par défaut
    Aïe ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    C:\temp>touch -m -r fichier1.doc -- fichier1.zip
    Touch Version 5.0 Copyright (c) 1995-2010 Embarcadero Technologies, Inc.
    
    NT Error #3 occured opening
    Error locating timestamp file: , using current time.
    Bad option: --
    
    Error: Bad option was specified

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 546
    Points : 1 084
    Points
    1 084
    Par défaut
    Apparemment il ne trouve pas le fichier1.doc

    Est-ce que tu es sûr d'être positionné dans le bon dossier ?

  5. #5
    Membre régulier Avatar de jack554
    Inscrit en
    Février 2003
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 192
    Points : 106
    Points
    106
    Par défaut
    Si si, il est là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    C:\temp>dir fichier1.*
     Le volume dans le lecteur C s’appelle Windows
     Le numéro de série du volume est A662-4A3A
    
     Répertoire de C:\temp
    
    22/04/2019  10:00        24*624*418 fichier1.doc
    04/06/2021  09:30        13*410*857 fichier1.zip
                   2 fichier(s)       38*035*275 octets
                   0 Rép(s)  670*690*234*368 octets libres

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 546
    Points : 1 084
    Points
    1 084
    Par défaut
    En voyant ton message d'erreur je me rends compte que nous n'avons pas le même TOUCH.
    Est-ce que tu l'as bien téléchargé là où j'avais indiqué ?

    Si je crée une erreur volontaire, voilà le message que j'obtiens :
    Nom : Capture du 2021-06-04 13-06-30.png
Affichages : 73
Taille : 41,7 Ko

  7. #7
    Membre régulier Avatar de jack554
    Inscrit en
    Février 2003
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 192
    Points : 106
    Points
    106
    Par défaut
    Damned ! Désolé je suis allé trop vite, je n'ai rien téléchargé du tout, j'ai lancé la commande "touch" comme ça.
    MAIS en le téléchargeant, cette fois ça marche, j'en reste baba.
    Me reste à faire la boucle, j'espère beaucoup y arriver, ha ha !
    et !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    C:\temp>touch -m -r fichier1.doc -- fichier1.zip
    
    C:\temp>dir fichier1.*
     Le volume dans le lecteur C s’appelle Windows
     Le numéro de série du volume est A662-4A3A
    
     Répertoire de C:\temp
    
    22/04/2019  10:00        24*624*418 fichier1.doc
    22/04/2019  10:00        13*410*857 fichier1.zip
                   2 fichier(s)       38*035*275 octets
                   0 Rép(s)  670*446*309*376 octets libres

  8. #8
    Membre éprouvé
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 546
    Points : 1 084
    Points
    1 084
    Par défaut
    Une boucle basique est suffisante, un truc du genre :

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for %%A in (C:\temp\*.doc) do (
    if exist "%%~dpnA.zip" (touch -m -r "%%~fA" -- "%%~dpnA.zip")
    )

  9. #9
    Membre régulier Avatar de jack554
    Inscrit en
    Février 2003
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 192
    Points : 106
    Points
    106
    Par défaut
    Merci encore, je vais tester.

    Par contre, une bizarrerie sur un autre fichier, il m'a pris le truc à l'envers et passé la date dans l'autre sens !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    C:\temp>dir jj46*
     Le volume dans le lecteur C s’appelle Windows
     Le numéro de série du volume est A662-4A3A
    
     Répertoire de C:\temp
    
    02/05/2019  04:30        27 762 174 jj468_f.mp4
    04/06/2021  09:30        27 762 342 jj468_f.zip
                   2 fichier(s)       55 524 516 octets
                   0 Rép(s)  670 430 650  681 octets libres
    
    
    C:\temp>touch -m -r jj468_f.mp4 -- jj468_f.zip
    
    C:\temp>dir jj46*
     Le volume dans le lecteur C s’appelle Windows
     Le numéro de série du volume est A662-4A3A
    
     Répertoire de C:\temp
    
    04/06/2021  17:56        27 762 174 jj468_f.mp4
    04/06/2021  17:56        27 762 342 jj468_f.zip
                   2 fichier(s)       55 524 516 octets
                   0 Rép(s)  670 435 794 944 octets libres
    Cela aurait dû être le zip qui prenne la date du mp4, comme dans l'exemple de mes docs précédents non ?

  10. #10
    Membre éprouvé
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 546
    Points : 1 084
    Points
    1 084
    Par défaut
    Oui on dirait qu'il a eu un problème pour récupérer l'horodatage du fichier .doc donc il s'est rabattu sur l'heure et la date actuelle.

    Rajoute le commutateur -v pour avoir plus de détails sur le problème :
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    touch -m -v -r jj468_f.mp4 -- jj468_f.zip

    Peut-être ainsi on arrivera à découvrir l'origine du problème.

  11. #11
    Membre régulier Avatar de jack554
    Inscrit en
    Février 2003
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 192
    Points : 106
    Points
    106
    Par défaut
    Très bizarre, en ajoutant le commutateur -v ... ça a fonctionné !
    Mais ça doit être moi, parce que je change aussi la date de ces fichiers avec l'utilitaire Total Commander ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    C:\temp>dir jj468*
    
    02/05/2019  04:30        27 762 174 jj468_f.mp4
    04/06/2021  17:56        27 762 342 jj468_f.zip
    
    C:\temp>touch -m -v -r jj468_f.mp4 -- jj468_f.zip
    Create       = unchanged
    Access       = unchanged
    Modification = 2019-05-02T04:30:00
    
    C:\temp\jj468_f.zip
    
    C:\temp>dir jj468*
    
    02/05/2019  04:30        27 762 174 jj468_f.mp4
    02/05/2019  04:30        27 762 342 jj468_f.zip
    Donc tout est bon ... et ton petit batch avec la boucle aussi, re-merci !
    Bonne soirée,
    Jack.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mettre à jour un fichier par rapport à un autre
    Par Maxraw dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/05/2020, 19h25
  2. [Toutes versions] Comparer 2 fichiers et mettre à jour un fichier par rapport à l'autre
    Par Pleyel dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 15/05/2020, 14h18
  3. Réponses: 5
    Dernier message: 27/01/2020, 11h39
  4. Réponses: 3
    Dernier message: 23/01/2019, 10h35
  5. [Toutes versions] Remplir des cellules dans un fichier par rapport à un autre en VBA
    Par gregou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/01/2015, 10h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo