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 :

[Batch Dos] incrementation +3 à %date%


Sujet :

Scripts/Batch

  1. #21
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 28
    Points : 12
    Points
    12
    Par défaut
    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
    @echo off
    echo. & echo Nous sommes Aujourd'hui le %DATE%
    
    set /a NJ=3
    set /a J=%DATE:~0,2%
    set /a M=%DATE:~3,2%
    set /a A=%DATE:~6,4%
    set /a JJ=%NJ% + (1461 * (%A% + 4800 + (%M% - 14) / 12)) / 4 + (367 * (%M% - 2 - 12 * ((%M% - 14) / 12))) / 12 - (3 * ((%A% + 4900 + (%M% - 14) / 12) / 100)) / 4 + %J% - 32075
    set /a T0=%JJ% + 68569
    set /a T1=(4 * %T0%) / 146097
    set /a T0=%T0% - (146097 * %T1% + 3) / 4
    set /a T2=(4000 * (%T0% + 1)) / 1461001
    set /a T0=%T0% - (1461 * %T2%) / 4 + 31
    set /a T3=(80 * %T0%) / 2447
    set /a J=%T0% - (2447 * %T3%) / 80
    set /a M=%T3% + 2 - (12 * (%T3% / 11))
    set /a A=100 * (%T1% - 49) + %T2% + (%T3% / 11)
    
    if %J% LSS 10 set J=0%J%
    if %M% LSS 10 set M=0%M%
    
    echo Dans 3 jours nous serons le %J%/%M%/%A%

  2. #22
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    L'extraction des jours et des mois pose problème s'ils sont inférieure à 10.
    Pourtant le test existe enfin de batch
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    @echo off
    rem Aucun affichage des msg d'erreur
    rem  getdate2 2>null
    rem Mémorisation des msg d'erreur dans le répertoire courant
    rem getdate2 2>%CDd%\log.txt
    rem Mémorisation des msg d'erreur dans le répertoire %temp%
    rem getdate2 2>%TEMP%\log.txt
     
    echo Nous sommes Aujourd'hui le %DATE%
    set /p NJ="Entrez un nombre de jours positif ou negatif : "
    set /a J=%DATE:~0,2%
    if errorlevel 1 set /a J=%DATE:~1,1%
    set /a M=%DATE:~3,2%
    if errorlevel 1 set /a M=%DATE:~4,1%
     
    set /a A=%DATE:~6,4%
    set /a JJ=%NJ% + (1461 * (%A% + 4800 + (%M% - 14) / 12)) / 4 + (367 * (%M% - 2 - 12 * ((%M% - 14) / 12))) / 12 - (3 * ((%A% + 4900 + (%M% - 14) / 12) / 100)) / 4 + %J% - 32075
    set /a T0=%JJ% + 68569
    set /a T1=(4 * %T0%) / 146097
    set /a T0=%T0% - (146097 * %T1% + 3) / 4
    set /a T2=(4000 * (%T0% + 1)) / 1461001
    set /a T0=%T0% - (1461 * %T2%) / 4 + 31
    set /a T3=(80 * %T0%) / 2447
    set /a J=%T0% - (2447 * %T3%) / 80
    set /a M=%T3% + 2 - (12 * (%T3% / 11))
    set /a A=100 * (%T1% - 49) + %T2% + (%T3% / 11)
    if %J% LSS 10 set J=0%J%
    if %M% LSS 10 set M=0%M%
    @echo .
    if %NJ% EQU 0 echo Nous sommes le %DATE% !
    if %NJ% GTR 0 echo Dans %NJ:+=% jour(s) nous serons le %J%/%M%/%A%
    if %NJ% LSS 0 echo Il y a %NJ:-=% jour(s) nous etions le %J%/%M%/%A%
    @echo .
    Il se peut que "le moteur" de batch soit différent ?
    Par exemple la syntaxe Echo. a tjr fonctionnée sous XP sp1 mais pas sous XP sp3, à vérifier.

  3. #23
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 109
    Points : 168
    Points
    168
    Par défaut
    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
    25
    26
    27
    @echo off
    echo. & echo Nous sommes Aujourd'hui le %DATE%
    set /p NJ="Entrez un nombre de jours positif ou negatif : "
    
    set /a J=1%DATE:~0,2% - 100
    set /a M=1%DATE:~3,2% - 100
    set /a A=%DATE:~6,4%
    set /a JJ=%NJ% + ((1461 * (%A% + 4800 + (%M% - 14) / 12)) / 4 + (367 * (%M% - 2 - 12 * ((%M% - 14) / 12))) / 12 - (3 * ((%A% + 4900 + (%M% - 14) / 12) / 100)) / 4 + %J% - 32075)
    set /a T0=%JJ% + 68569
    set /a T1=(4 * %T0%) / 146097
    set /a T0=%T0% - (146097 * %T1% + 3) / 4
    set /a T2=(4000 * (%T0% + 1)) / 1461001
    set /a T0=%T0% - (1461 * %T2%) / 4 + 31
    set /a T3=(80 * %T0%) / 2447
    set /a J=%T0% - (2447 * %T3%) / 80
    set /a M=%T3% + 2 - (12 * (%T3% / 11))
    set /a A=100 * (%T1% - 49) + %T2% + (%T3% / 11)
    
    if %J% LSS 10 set J=0%J%
    if %M% LSS 10 set M=0%M%
    
    echo.
    if %NJ% EQU 0 echo Nous sommes le %DATE% !
    if %NJ% GTR 0 echo Dans %NJ:+=% jour(s) nous serons le %J%/%M%/%A%
    if %NJ% LSS 0 echo Il y a %NJ:-=% jour(s) nous etions le %J%/%M%/%A%
    echo.

  4. #24
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par magma²
    [code]
    set /a J=1%DATE:~0,2% - 100
    Je me doutais bien qu'on pouvait faire + simple et + élégant
    Peux-tu nous dire sous quel OS tu as testé ce script ?
    Et est-ce un algo particulier ?
    Merci.

  5. #25
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 28
    Points : 12
    Points
    12
    Par défaut
    je testerai ca demain sur mon 2003 R2 en tout cas ca fonctionne sur mon xp SP3 !!

    Un trés grand merci à vous deux d'avoir pris le temps de me repondre meme si je n'ai pas tout compris

    petite question pourquoi declare t'on plusieurs fois la variable T0 ?

  6. #26
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    Salut tout le monde,

    dob2806,
    la variable TO n'est pas déclarée plusieurs fois comme tu le dis, elle est recalculée. (du moins son contenu si tu préfères)

    TO=%TO% + x -y <=[veut dire]=> TO=f(%TO%) <=[c'est à dire]=>
    NouvelleValeurDeTO = RésultatOpérationsSur(PrécédenteValeurDeTO)

    Laurent Dardenne,
    je ne suis pas sûr de bien cerner ta demande, regarde si la discussion sur le problème de date répond à ta question.



    .

  7. #27
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par maxim_um Voir le message
    Laurent Dardenne,
    je ne suis pas sûr de bien cerner ta demande, regarde si la discussion sur le problème de date répond à ta question.
    Et moi je ne comprend pas de quoi tu parles ?

    Tu réponds à la question que j'ai posé à magma² ?

  8. #28
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    salut
    oui, la dernière question, car il me semblait que tu t'interrogeais sur le format octal de l'interpréteur de commande cmd.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. BATCH DOS +AUTO DELETE Fichiers selon date de création
    Par FredericManche dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 17/02/2010, 15h59
  2. Batch DOS Date J-2
    Par Attila50 dans le forum Windows
    Réponses: 4
    Dernier message: 26/05/2007, 09h52
  3. [BATCH-DOS] Sur quel forum poster ?
    Par Beaunico dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 17/09/2004, 18h30
  4. un batch DOS pour "nettoyer des fichiers" ?
    Par RoroMinator dans le forum Scripts/Batch
    Réponses: 9
    Dernier message: 12/02/2004, 16h24
  5. Réponses: 5
    Dernier message: 01/10/2003, 15h03

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