[Résolu] Batch, validation de date et portée des variables

Une difficulté, une précision posez vos questions

Modérateur : WIN32-[GG]

Répondre
Galeokerdo
Batcheur occasionnel
Messages : 2
Enregistré le : 01 avr. 2015 13:12

[Résolu] Batch, validation de date et portée des variables

Message par Galeokerdo »

Bonjour,

Je dois réaliser un script dont la finalité est l'écriture du dumpsql de la veille dans une base de données. Pour des raisons de simplicité et de souplesse, j'articule ça en un fichier principal qui appelle quand nécessaire les sous-parties dont j'ai besoin (FTP, opération avec la base, etc...)

Tout ce qui concerne les traitements se passent bien, à un détail : les dates.

Une sauvegarde de ma base est faite à J-1. Je la en FTP récupère à J pour intégration de mon côté. Pendant les 30 derniers jours du mois ça ne me pose pas de souci. mais le premier : le fichier que je récupère contient la date de la sauvegarde : 31-Mar-2015

Donc, j'éclate ma date en jour, mois et année, puis si le jour est 01, je soustrais 1 au mois :

Code : Tout sélectionner

SET jour=%date:~0,2%

IF %jour% EQU 01 (GOTO premier) else (GOTO suite)

:premier

SET /a mois-=1

if %mois% LSS 10 (SET mois=0%mois%)
J'ai trouvé un script qui est très bien sur SO pour vérifier si une date existe.

Je l'ai modifié pour qu'il reçoive inDate depuis un fichier tiers, et pour qu'il me renvoie un résultat dans une variable :

Code : Tout sélectionner

echo Date correct: %DD%-%MM%-%YYYY%
SET valide=correct
GOTO fin

:dateInvalide
echo Bad date
SET valide=incorrect

:fin
La date est correctement reçue, mais je ne parviens pas à recevoir la variable valide :

Code : Tout sélectionner

echo ----
echo %valide%
echo ----
Ma question est : pourquoi je peux faire passer inDate depuis un fichier tiers, mais je ne peux pas recevoir valide ?

Je vous remercie par avance pour votre aide.
Modifié en dernier par Galeokerdo le 13 avr. 2015 15:57, modifié 1 fois.
Galeokerdo
Batcheur occasionnel
Messages : 2
Enregistré le : 01 avr. 2015 13:12

Re: Batch, validation de date et portée des variables

Message par Galeokerdo »

Pour ceux que ça intéresserait, la réponse est dans le setlocal EnableDelayedExpansion du script de SO.

En le déplaçant dans mon script-pilote, et en m'assurant qu'aucun autre setlocal n'était appelé, j'ai résolu mon souci de portée.
Kerryhurb
Batcheur occasionnel
Messages : 2
Enregistré le : 29 mai 2015 06:40

Re: [Résolu] Batch, validation de date et portée des variables

Message par Kerryhurb »

If I'm interested in further studies. Where to find this information.
Répondre