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.
Version imprimable
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:
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 mathsCode:
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 suffiraitCitation:
For /F "tokens=1,2,3 delims=/-. " %%a In ("%2") Do Set %1=%%c%%b%%a
Plus maintenable, plus propre et quand même plus facile à comprendre pour les débutants, selon moi.
Pour un si petit script, autant faire dans la lisibilité plutôt que la performance.
J'avoue que ma première version était des extractions, mais j'ai modifié en postant :mrgreen:
Salut, je fais comment pour la date au format MM/JJ/AAAA ?
Salut,
Tu dois jouer avec les tokens (%%A %%B %%C) qui correspondent à A/B/C par rapport à la date. A toi de faire en sorte de créer le format voulu (ici tu veux juste inverser JJ et MM, donc A et B).
En gros tu dois juste modifier l'ordre des tokens dans le do pour prendre en compte le bon format :
Format d'entrée JJ/MM/AAAA -> %1=%%c%%b%%a -> AAAAMMJJ
Format d'entrée MM/JJ/AAAA -> %1=%%c%%a%%b -> AAAAMMJJ
etc ...
Désolé pour le retard, je ne suis pas souvent sur le forum.
Merci pas de soucis !