Page 1 sur 1

Ordre de traitement d'une boucle FOR

Posté : 30 juil. 2014 16:52
par tartex
Bonjour à tous,
Je débute tout juste en création de script DOS, et j'ai déja une question:

Contexte:
Je veux faire un script qui peut lancer un traitement sur des fichiers portants un certain nom, quelque soit leur nombre, mais dans l'ordre chronologique d'arrivée/création.
exemple:
f1.txt créé le 25/07
f2.txt créé le 26/07
f3.txt créé le 27/07
f0.txt créé le 28/07

Idéalement, mon script devrait donc traiter dans l'ordre suivant f1,f2,f3,f0.

Dans les faits, en utilisant une boucle FOR basique : FOR %f IN (f*.txt) DO echo %f
j'obtiens f0,f1,f2,f3.
Il me semble donc que la boucle FOR se base sur la composition du nom de fichier pour établir son ordre de traitement, mais ce n'est qu'une déduction de ma part.

Je n'arrive pas à trouver comment imposer un ordre de traitement (par date, par nom ou autre)(ou je n'ai pas formulé ma requete comme il faut sur les sites de recherche).

Auriez vous une idée svp?


Merci d'avance.

Re: Ordre de traitement d'une boucle FOR

Posté : 20 déc. 2014 23:35
par LNOW
Hello,

Tu peux utiliser un tri par DIR, traité dans le FOR

FOR /F "delims=*" %a in ('DIR /OD /A-D /B') DO @ECHO "%a"

"delims=*" permet de ne pas s'arrêter aux espaces des noms trouvés

paramètre du DIR:
/OD: tri par date. Tu peux mettre /O-D pour date inverse, /OE extension, ...
/A-D: on exclus les dossiers, pour n'avoir que les fichiers
/B: liste de noms uniquement, sinon trop d'info

A+
Lo

Re: Ordre de traitement d'une boucle FOR

Posté : 13 févr. 2015 09:51
par Ddamadosic
Very nice too I thought you would not find out.