Limiter la commande Dir sous dos

TechLeader Messages postés 4 Date d'inscription mardi 10 novembre 2009 Statut Membre Dernière intervention 12 janvier 2011 - 12 janv. 2011 à 10:58
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 28 mai 2011 à 11:37
Bonjour,

Voici mon souci:
Je souhaite faire une recherche de fichier toute simple en batch Dos en utilisant la commande dir.
En admettant que j'ai des fichiers avec pour extension ".txt" et ".txt01", je voudrais limiter la recherche au extentions ".txt".

Or les commandes suivantes:
dir *.txt
dir *.tx?

me renvoies systématiquement les fichiers ".txt" et ".txt01".

Quelqu'un a t il une solution pour limiter la recherche de dir?

Cordialement.

3 réponses

cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
12 janv. 2011 à 16:00
salut,

Il semble que l'extention soit mal vérifiée par le pattern de la commande.

La seule solution que j'ai pu envisager serait de supprimer l'extention en remplaçant le point par un autre caractère:

file_txt
file_txt01

@++
0
TechLeader Messages postés 4 Date d'inscription mardi 10 novembre 2009 Statut Membre Dernière intervention 12 janvier 2011
12 janv. 2011 à 16:41
Bonjour,

Après quelques essais, le probleme vient de la gestion des noms court (8.3) et long (Windows).

En fait les fichiers sous Windows 0000.txt reste 0000.txt sous DOS.
En revanche un fichier 0000.text01 sous Win devient 0000~1.txt sous DOS.

Comme la commande DIR ne traite les fichiers qu'avec leur nom court, on voit tout les fichiers comme des fichiers ".txt".

De plus je ne peux pas renommer les fichiers concerner car en partage sur un serveur. Je n'ai donc toujours pas de moyen de contourner ce probleme.

En espérant avoir été clair....

Cordialement.
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
28 mai 2011 à 11:37
Bonjour,

Amusant ça. Une solution de contournement peut être un filtrage des résultat à la main.
for /F %I IN ('dir /B *.txt') DO if "%~xI"==".txt" echo %I
0
Rejoignez-nous