Bonjour tout le monde,

J'ai lu quelque chose sur la commande "FOR /F", et du coup j'ai essayé, une fois qu'on a compris que le fonctionnement est différent selon qu'on fournit ou pas les options token et delims ça peut donner quelque chose de puissant.

Je suis intrigué par ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
for %X in (*.TXT) do @ECHO === %X === & TYPE %X & %X
Dans un répertoire qui contient les fichiers 1 à 4, pour chaque fichier ça affiche le nom puis le contenu et ça ouvre le fichier.

Pour ce qui est de ce qui s'affiche dans la ligne de commandes pas de surprise, ça s'affiche dans l'ordre 1 à 4.
Mais pour ce qui est des fenêtres d'éditeur qui s'ouvrent, je les trouve (logiquement dans l'ordre inverse de l'ouverture) dans l'ordre 2, 1, 4, 3.

Est-ce qu'il y a une explication rationnelle à cela ?

J'ai pensé que l'ordre de création ou les dates pouvaient avoir un rapport, mais la piste ajoute à la perplexité :
Code : 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
DIR /O:D /T:C
 Répertoire de D:\Test2

06/01/2021  01:47    <DIR>          ..
06/01/2021  01:47    <DIR>          .
06/01/2021  01:47                13 fichier1.txt
06/01/2021  01:47                 0 fichier4.txt
06/01/2021  01:47                 0 fichier2.txt
06/01/2021  01:47                 0 fichier3.txt
               4 fichier(s)               13 octets

DIR /O:D /T:W
 Répertoire de D:\Test2

06/01/2021  01:47                 0 fichier2.txt
06/01/2021  01:47                 0 fichier4.txt
06/01/2021  01:47                 0 fichier3.txt
06/01/2021  01:48    <DIR>          ..
06/01/2021  01:48    <DIR>          .
06/01/2021  02:54                13 fichier1.txt
               4 fichier(s)               13 octets
Au départ j'ai créé un fichier1.txt, puis je l'ai copié, collé trois fois, et renommé le résultat fichier2 à fichier4.

En fait ça a à voir avec le temps d'exécution, puisque si je mets une pause à la fin je referme bien les fenêtres dans l'ordre 4, 3, 2, 1.

C'est même un peu plus sioux que ça, car si je mets PAUSE les fenêtres viennent bien par dessus comme je viens de dire, mais si je mets TIMEOUT /T 10 >NUL, la première fenêtre vient bien par dessus, puis les trois suivantes s'ouvrent derrière la fenêtre de lignes de commandes.

Je m'attendrais bien à ce que le fichier1 prenne un peu plus de temps puisqu'il a un contenu, mais ça n'explique pas le reste.