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 :

Plusieurs appels date/time dans un batch [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 24
    Par défaut Plusieurs appels date/time dans un batch
    Bonjour,

    J'ai un .BAT qui lance un traitement. J'ai besoin de la durée d'exécution du traitement.

    Je fais donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      ECHO Lancement du traitement
      ECHO %DATE:~6,4%%DATE:~3,2%%DATE:~0,2%%TIME:~0,2%%time:~3,2%%time:~6,2%
      CALL .... (lancement du traitement)
      ECHO %DATE:~6,4%%DATE:~3,2%%DATE:~0,2%%time:~0,2%%time:~3,2%%time:~6,2%
    Mais j'obtiens les mêmes infos pour la date :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Lancement du traitement
    20130328141350
    .... (résultat du traitement)
    20130328141350
    Comment faire pour afficher les bonnes valeurs de début et de fin de traitement (rafraichir le contenu des variables %date% et %time%) ?

    Cordialement

  2. #2
    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
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ECHO Lancement du traitement
    set t1=%time%
      ECHO %DATE:~6,4%%DATE:~3,2%%DATE:~0,2%%TIME:~0,2%%t1:~3,2%%t1:~6,2%
      CALL .... (lancement du traitement)
    set t2=%time%
      ECHO %DATE:~6,4%%DATE:~3,2%%DATE:~0,2%%time:~0,2%%t2:~3,2%%t2:~6,2%
    Et si tu as toujours les mêmes valeurs c'est que ton programme à pris moins de 1 seconde pour s'executer.

    amicalement

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 24
    Par défaut
    Non, ça ne marche pas. J'ai juste mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ECHO Lancement du traitement %%i
    set t1=%time%
    echo %t1%
      CALL ...
    set t2=%time%
    echo %t2%
    et j'obtiens (en fait je lance plusieurs traitements dans une boucle) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Lancement du traitement 1
    15:23:53,18
    15:23:53,18
    
    Lancement du traitement 2
    15:23:53,18
    15:23:53,18
    Chaque traitement dure plus d'une seconde (au moins 30 pour le premier).

    Remarque : j'obtiens "15:23:53,18" comme heure alors que mon PC indiquait 15:25 quand j'ai lancé. Sur quoi se base %time% ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 24
    Par défaut
    Je viens de relancer (à 15:35) et j'obtiens "15:25..." comme trace. C'est la date de l'exécution précédente du .BAT.

    Si je mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ECHO Lancement du traitement %%i
    time /t
    set t1=%time%
    echo %t1%
      CALL ...
    time /t
    set t2=%time%
    echo %t2%
    j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Lancement du traitement 1
    15:37
    15:35:49,32
    15:38
    15:35:49,32
    
    Lancement du traitement 2
    15:38
    15:35:49,32
    15:38
    15:35:49,32
    La commande "time /t" donne la bonne valeur, mais pas "set t1=%time%".

  5. #5
    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
    Par défaut
    Effectivement dans une boucle c'est différent.

    Essaye comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @echo off
    
    setlocal enabledelayedexpansion enableextensions
    
    for %%a in (1 2) do (echo TRAITEMENT No - %%a
                         echo T depart : !time!
      		     CALL ping google.com
                         echo T fin : !time!
                         echo.&echo.)
    Amicalement

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 24
    Par défaut
    Merci beaucoup, ça marche très bien comme ça !

    Avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    setlocal enabledelayedexpansion enableextensions
    FOR %%i in (1 2) DO ( 
      ECHO Lancement du traitement %%i
      ECHO !DATE:~6,4!!DATE:~3,2!!DATE:~0,2!!TIME:~0,2!!TIME:~3,2!!TIME:~6,2!
      CALL ...
      ECHO !DATE:~6,4!!DATE:~3,2!!DATE:~0,2!!TIME:~0,2!!TIME:~3,2!!TIME:~6,2!
    )
    j'obtiens bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Lancement du traitement 1
    20130328162723
    20130328162808
    
    Lancement du traitement 2
    20130328162809
    20130328162836
    Cordialement

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

Discussions similaires

  1. [SQL] format date time dans sql
    Par VuVietHai dans le forum SAS Base
    Réponses: 4
    Dernier message: 20/06/2014, 18h09
  2. Réponses: 1
    Dernier message: 30/09/2013, 19h45
  3. Réponses: 3
    Dernier message: 21/01/2007, 10h40
  4. [VB6] Soustraction Date & Time + Images dans les menus
    Par Jihnn dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 02/07/2006, 17h10
  5. recuperer date dans un batch et la placer en variable
    Par Phenomenium dans le forum Windows
    Réponses: 6
    Dernier message: 07/06/2004, 10h44

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