Bonjour,
J'essaie d'écrire un batch qui me dirait listerait les fichiers d'un répertoire qui serait (ou qui ne seraient pas) à la date du jour.
Je crois avoir compris tout ce qui est manipulation de dates mais là où je bute, c'est sur la comparaison et le listing.
Les fichiers que je dois trier ont tous la même extension et certains noms de fichiers comportent des espaces, ce qui ne facilite pas la tâche.
Bref, je comptais faire un truc comme ça :
Ce que je traduisais par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 for /f %%B IN ('dir *.mdc') do ( set datf=%%B set jourf=%datef:~0,2% set moisf=%datef:~3,2% set anneef=%datef:~6,4% set jour=%date:~0,2% set mois=%date:~3,2% set annee=%date:~6,4% set datef=%jourf%%moisf%%anneef% set date=%jour%%mois%%annee% if not %datef%==%date% echo Le ficher %???% n'est pas a la date du jour. pause )
Pour chaque fichier à extension .mdc,
On met la date en variable (car %%B du dir sans option sort les 1ers caractères jusqu'à un espace, donc la date du fichier),
On extrait jour, mois et année de la date du fichier pour créer une suite de chiffres,
On extrait jour, mois et année de la date du jour pour créer une 2ème suite de chiffres,
On compare les 2 chaînes et si elles sont différentes on renvoie le nom fu fichier pour laquelle la condition se produit.
Ma question : comment je récupère le nom du fichier ?
Mais je m'aperçois que quand je lance le batch, la fenêtre se ferme alors que ça fonctionnait jusqu'avant que j'écrive ce post... J'ai du changer quelquechose et je ne vois plus quoi...
HELP !
Partager