La requête en ligne de commande DOS renvoie trop de résultats

-2

Quelqu'un peut-il me dire pourquoi dir *.asp renvoie tout .asp fichiers mais aussi tous .aspx des dossiers? Il semble dir ignore les extensions de plus de trois. C'est vraiment dérangeant.

Gary
la source
Vous réussissez à vous contredire même si vous avez à peine écrit beaucoup. Bien que vous ayez raison, "dir * .asp renvoie tous les fichiers .asp, mais également tous les fichiers .aspx" Vous dites alors bizarrement que "dir ignore les extensions de plus de trois", ce qui est faux. Vous aviez raison de dire dir * .asp listes également .aspx.
barlop

Réponses:

0

En effet, cmd.exe est cassé et ignorera les extensions au-delà des 3 premiers caractères lors de l'utilisation de caractères génériques. Vous pouvez utiliser:

dir /B *.asp|find /V ".aspx"

enlever les objets supplémentaires.

krowe
la source
-1 Pourquoi dites-vous que DIR ignorera les extensions au-delà des trois premiers caractères et montrez ensuite que DIR répertorie l'extension aspx. Et en plus, c’est encore plus faux de dire que DIR ignore les extensions au-delà des 3 premiers caractères, j’ai juste essayé de créer un fichier blah.abcq et dir * .abc5 et il n’ignorait pas les 5 et ne faisait pas dir. Je m'attendrais à ce que DIR ignore le troisième caractère. Je ne vois vraiment pas ce que vous entendez par ceci: ignorer les 3 derniers personnages. Peut-être que je vous interprète mal, et peut-être pourriez-vous être plus clair sur ce point que vous avez ignoré.
barlop
ce que vous suggérez montrerait simplement * .asp que c'est bon mais ce que vous dites à propos de DIR ignorant les 3 premiers caractères, je ne vois pas ce que vous dites là. DIR place un caractère générique après les 3 premiers caractères mais s'il y avait un quatrième caractère, il ne place pas un caractère générique après les 3 premiers, voir mon commentaire ci-dessus.
barlop
@barlop C'est cassé. Créez un répertoire contenant les deux types de fichiers. Maintenant tapez dir *.asp et vous aurez les deux fichiers. Type dir *.aspx et vous aurez juste le .aspx fichier. Type dir *.as et vous n'aurez aucun fichier. C'est incohérent et c'est un bogue que MS a choisi de laisser pour assurer la compatibilité.
krowe
Je vais enlever mon -1, comme vos commentaires vous l'expliquent plus .. Je pense que vos exemples et votre affirmation selon laquelle il s'agirait d'un bug et d'incohérences sont bons .. Mais dire que cela ignore les 3 premiers caractères, ce n'est pas une bonne description de ce comportement buggy que vous décrivez.
barlop
Le problème est qu'il y a tellement de ces petits bogues dans ce cmd.exe qui est sans espoir. Si je mentionne les trois premiers caractères, c'est parce qu'il se corrige lui-même pour les extensions plus longues. Essayez d’ajouter quelques fichiers avec des extensions plus longues et cela fonctionne à nouveau correctement.
krowe