[Résolu] Batch, validation de date et portée des variables
Posté : 01 avr. 2015 14:22
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 :
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 :
La date est correctement reçue, mais je ne parviens pas à recevoir la variable valide :
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.
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%)
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
Code : Tout sélectionner
echo ----
echo %valide%
echo ----
Je vous remercie par avance pour votre aide.