Bonjour, je cherche en batch un moyen permettant de créer une condition avec la date,
par exemple:
- si la date est supérieure au 13/06/2020 alors aller à ....
- si la date est supérieure au 24/06/2020 alors quitter.
Bonjour, je cherche en batch un moyen permettant de créer une condition avec la date,
par exemple:
- si la date est supérieure au 13/06/2020 alors aller à ....
- si la date est supérieure au 24/06/2020 alors quitter.
Bonjour,
Voici une solution pour ton cas qui consiste à transformer un format de date en nombre pour pouvoir le comparer.
Attention, on part du principe que la date est au format JJ[-/. ]MM[-/. ]AAAA (ex : 13/06/2020)
Code batch : 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 @Echo Off :: La date à comparer au format JJ/-.MM/-.AAAA Set "compareDate=13/06/2020" :: convertir date au format AAAAMMJJ Call:convertDateToNumber compareDate %compareDate% Call:convertDateToNumber today %DATE% :: On peut comparer normalement If %today% LSS %compareDate% ( Echo Nous sommes avant ) Else If %today% GTR %compareDate% ( Echo Nous sommes après ) Else Echo c'est aujourd'hui Pause Goto:EOF :: Transformer une date JJ[-/. ]MM[-/. ]AAAA au format AAAAMMJJ :convertDateToNumber For /F "tokens=1,2,3 delims=/-. " %%a In ("%2") Do Set %1=%%c%%b%%a Goto:EOF
Merci beaucoup mais c'est plutôt comme ça non ?
Ou alors c'est mon ordinateur qui n'a pas apprit les maths
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 If %today% GTR %compareDate% ( Echo Nous sommes avant ) Else If %today% LSS %compareDate% ( Echo Nous sommes après ) Else Echo c'est aujourd'hui
Nan les deux sont possible, ça dépend de quelle date tu veux comparer. Dans ton exemple c'est bien mon cas qui prime puisqu'on compare la date du jour à une date à comparer. Là tu fais l'inverse.
Dans tous les cas c'est à toi d'utiliser ce code comme bon te semble.
Pourquoi utiliser la boucle for quand ce n'est pas nécessaire ? Une simple extraction de chaine suffiraitFor /F "tokens=1,2,3 delims=/-. " %%a In ("%2") Do Set %1=%%c%%b%%a
Partager