Ordre de traitement d'une boucle FOR

Une difficulté, une précision posez vos questions

Modérateur : WIN32-[GG]

Répondre
tartex
Batcheur occasionnel
Messages : 1
Enregistré le : 30 juil. 2014 16:41

Ordre de traitement d'une boucle FOR

Message 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.
LNOW
Batcheur débutant
Messages : 17
Enregistré le : 20 déc. 2014 12:28

Re: Ordre de traitement d'une boucle FOR

Message 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
Ddamadosic
Batcheur occasionnel
Messages : 2
Enregistré le : 13 févr. 2015 09:44

Re: Ordre de traitement d'une boucle FOR

Message par Ddamadosic »

Very nice too I thought you would not find out.
Répondre