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 :

Récupérer dans une variable d'environnement la date de modification d'un fichier [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre régulier
    Homme Profil pro
    PLM IT Consultant
    Inscrit en
    Novembre 2003
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : PLM IT Consultant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 202
    Points : 86
    Points
    86
    Par défaut Récupérer dans une variable d'environnement la date de modification d'un fichier
    Bonjour à tous,

    n'ayant plus beaucoup développé de script depuis quelques années, j'ai besoin rapidement d'aide de spécialiste pour une tâche qui, j'en suis certain, est très simple pour les habitués.

    j'ai besoin de récupérer la date de modification d'un fichier déjà défini et l'insérer dans une variable. J'ai trouvé plusieurs solutions avec des boucles, etc... mais j'en suis persuadé qu'il y a une manière simple de le faire.

    L'objectif finale est de copier un fichier qu'il y a sur un serveur que si cette version est plus récente que celle sur l'ordinateur client.

    Je vous montre le début de mon code:

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set ICON_FOLDER_SHARE=\\server1\Filesharing
    set ICON_FOLDER_LOCAL=C:\plugins
    set ICON_FILENAME=racexpress.jar

    A cette étape, j'aimerais avoir des variables qui me donne la date de modification du fichier appeler ICON_FILENAME dans le répertoire 1 et répertoire 2.
    Ensuite, comparer les 2 dates et si le fichier qui se trouve dans répertoire 2 est >= que répertoire 1 alors ne rien faire

    En algorythmique:

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    REM Trouver la date du fichier source
    set DATE_FILESERVER=Date de Modification de %ICON_FOLDER_SHARE%\%ICON_FILENAME%
    set DATE_FILECLIENT =Date de Modification de %ICON_FOLDER_LOCAL%\%ICON_FILENAME%
     
    Rem Comparer les dates
    if DATE_FILESERVER >= (plus récent) DATE_FILECLIENT
    xcopy %ICON_FOLDER_SHARE%\%ICON_FILENAME% %ICON_FOLDER_LOCAL%\
    start GENXML.bat

    J'espère que quelqu'un pourra m'aider.
    En vous remerciant

    Bonne journée les developpeurs
    "Qu'est-ce qui est venu le premier à la vie? Le compilateur ou le code source"

  2. #2
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    14 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14 939
    Points : 23 253
    Points
    23 253
    Billets dans le blog
    10
    Par défaut
    Bonjour

    As-tu testé cette commande ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    
    Pour le fichier toto.bat par exemple
    
    Date /T toto.bat > c:\date_toto.txt
    Normalement dans le fichier date_toto.txt tu ne dois avoir que la date du fichier.

    Il suffit de récupérer cette date dans une variable puis de faire des comparaisons.
    Vous pouvez utiliser les FAQ (ICI) ou les Tutoriels (ICI) et aussi accéder au blog (ICI)

  3. #3
    Membre régulier
    Homme Profil pro
    PLM IT Consultant
    Inscrit en
    Novembre 2003
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : PLM IT Consultant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 202
    Points : 86
    Points
    86
    Par défaut
    Salut,

    non je n'ai pas testé ta commande mais j'ai trouvé ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FOR /f %%a in ('dir %ICON_FOLDER_LOCAL%\%ICON_FILENAME%^|find /i " %ICON_FILENAME%"') DO SET LOCAL_FILEDATE=%%a
    FOR /f %%a in ('dir %ICON_FOLDER_SHARE%\%ICON_FILENAME%^|find /i " %ICON_FILENAME%"') DO SET SHARE_FILEDATE=%%a
    
    if %SHARE_FILEDATE% LSS %LOCAL_FILEDATE% (GOTO COPYFILE ) ELSE (GOTO END)
    Merci beaucoup de ta réponse.

    Bonne journée
    "Qu'est-ce qui est venu le premier à la vie? Le compilateur ou le code source"

  4. #4
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Citation Envoyé par JML19 Voir le message
    Bonjour

    As-tu testé cette commande ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    
    Pour le fichier toto.bat par exemple
    
    Date /T toto.bat > c:\date_toto.txt
    Normalement dans le fichier date_toto.txt tu ne dois avoir que la date du fichier.

    Il suffit de récupérer cette date dans une variable puis de faire des comparaisons.
    Salut,

    Tu va avoir la date du jour mais certainement pas la date de modif du fichier !
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

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

Discussions similaires

  1. Récupérer dans une variable une partie du nom d'un onglet
    Par Bubale dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/05/2008, 16h34
  2. récupérer dans une variable le résultat d'une requete
    Par Stargate SG1 dans le forum Access
    Réponses: 1
    Dernier message: 31/05/2007, 18h08
  3. Batch : stocker dans une variable
    Par Martin Guélat dans le forum Windows
    Réponses: 1
    Dernier message: 13/03/2007, 16h41
  4. ecrire dans une variable d'environnement
    Par gy0m76 dans le forum C
    Réponses: 6
    Dernier message: 11/12/2006, 14h34
  5. Récupérer dans une variable la note de bas de page
    Par Manudibango dans le forum Général VBA
    Réponses: 6
    Dernier message: 03/12/2006, 17h27

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