Je n'ai pas trouvé de détails sur la façon d'utiliser le masque de fichier dans un fichier de commandes. Mon exigence, au lieu de sélectionner tous les fichiers journaux (* .log), comment sélectionner tous les fichiers journaux comportant un suffixe entier à la fin. Par exemple, parmi les fichiers suivants, P> J'ai besoin d'un masque de fichier pour sélectionner tous sauf em> strong> J'ai essayé merci. p> p>
Journal CODE> P>
Test * .log code>, mais qui slèche test.log aussi. Il est préférable de ne pas inclure la partie de nom de fichier (test). Quelque chose comme,
* <0-9d> .log code>. p>
4 Réponses :
essayer test? .log code> p>
Ne fonctionnera pas - vous pouvez l'essayer dans une coquille: echo> test.log; echo> test1.log; Dir Test? .log code> trouvera 2 fichiers.
comme Test? .log code> et même
testez-vous ?? , la seule chose à obtenir ce que vous voulez serait un type de solution de contournement, par exemple:
if exist test.log ren test.log test.tmp
REM Do your stuff here, you can now use test*.log
if exist text.tmp ren test.tmp test.log
Merci .. Je pourrais le faire fonctionner de cette façon, vous avez également confirmé qu'il n'y a pas de type de regex dans le script de lot.
Vous pouvez essayer ce qui suit, que je pense personnellement est terrible, mais cela peut simplement être ce dont vous avez besoin: si le suffixe est vraiment n'importe quel entiteur em> Numéro dans une gamme potentiellement très grande, cela ne fonctionnera pas - à moins que vous niez plusieurs aussi, il n'y a pas besoin d'exécuter pour code> des boucles code>, où chacun ne s'occupe d'un seul chiffre et que vous modifiez le
si il existe un test% i. Journal code> à quelque chose comme
si existe test% A% b% c% d.log code> (pour quatre chiffres). p>
Somecommand code> dans une coque séparée (
cmd / c code>), sauf si bien sûr, c'est en fait ce que vous devez faire. P> p>
@johannes Rössel: I> que, gentil monsieur, serait vraiment waaaay plus intelligent que ce que j'ai suggéré. ;-) (J'ai appris quelque chose de nouveau aujourd'hui ...)
Pour faire correspondre les noms de fichiers sur une expression régulière dans un fichier de commandes Vous pouvez utiliser la boucle suivante comme modèle:
for /F "delims=" %%I in ('"dir /B /S | findstr /E "\\test[0-9][0-9]*\.log""') do ( echo %%I )