Trouvez-vous des noms de fichiers avec certains modèles sur la ligne de commande Windows?

Essayer de trouver des fichiers de certains motifs dans un répertoire et ses sous-répertoires. J'ai essayé:

C:\test\workspace>dir *.*.r[0-9]* /s /b File Not Found 

Dans l'espoir de trouver des fichiers comme

 abc.txt.r12222 tjy.java.r9994 

Lorsqu'un numéro est ajouté après la lettre r, effectuée par SVN.

Qu'est-ce que je fais mal?

Je viens de répondre à cela sur Stack Overflow il y a quelques jours. https://stackoverflow.com/questions/15648679/find-text-string-or-part-of-text-with-dot-in-grepwin/15648872#15648872

Dans votre cas, il ressemblerait à:

 dir * /s/b | findstr \.r[0-9]+$ 

Mettre à jour

Le * dans l'un des autres exemples ".r [0-9] * $" trouve également des enregistrements qui finissent dans 'r' puisque le * quantificateur signifie 0 ou plus.

Ma suggestion pour vous est de le faire avec grep – un utilitaire pour les systèmes UNIX qui a été porté à Windows et peut correspondre à des lignes à l'aide d'expressions régulières.

grep est inclus avec le paquet MSYS de MinGW, l'installateur peut être trouvé ici . (Installez uniquement MSYS)

Ensuite, vous devrez ajouter des outils MSYS à votre variable PATH, le répertoire dfeult pour MSYS est C:\MinGW\msys\1.0\bin

Enfin, vous pouvez faire votre serach avec cette commande:

 ls -a | grep ^.+\..+\.r[0-9]+$ 

… ce qui signifie: "obtenir la sortie de ls -a (liste de fichiers incluant les fichiers cachés) et passer à grep , correspondre les lignes qui ressemblent .r [0-9] * (avec au moins un caractère symbolisé par chaque astérisque ) ".

Vous pouvez essayer ceci:

 dir /a| findstr .r[0-9]*$ 

Pour obtenir de l'aide, tapez findstr /? .