Lot pour parcourir tous les fichiers avec une liste prédéfinie ou un ensemble d’extensions et ignorer tous les autres types de fichiers

J’ai le script windows-batch suivant pour parcourir tous les fichiers du répertoire courant:

FOR %%F in (%CD%\*.*) DO ( :: I am doing my process here ) 

Je sais que je peux parcourir un type de fichier spécifique en utilisant *.ext , mais je dois parcourir tous les types de fichiers ci-dessous et ignorer tous les autres types, même en boucle FOR unique:

 php phtml css js sql xml 

Comment puis-je y parvenir en apportant le moins de modifications possible à mon code?

Je ne suis pas vraiment un scripteur par lots, alors toute aide serait très appréciée.

Qu’en est-il de l’utilisation de cette ligne de commande dans votre fichier de commandes?

 for %%I in (*.php *.phtml *.css *.js *.sql *.xml) do echo "%%I" 

Ou peut-être mieux selon ce que vous voulez faire:

 for /F "delims=" %%I in ('dir /AD /B *.php *.phtml *.css *.js *.sql *.xml 2^>nul') do echo "%%I" 

La version avec DIR fonctionne également pour les fichiers avec un atsortingbut caché défini et est meilleure lorsque les fichiers du répertoire en cours sont renommés, déplacés ou supprimés, c.-à-d. par FOR ne change pas une fois la commande DIR exécutée, ce qui n’est pas le cas avec la première solution. La première solution peut facilement entraîner un comportement inattendu, tel que le double traitement d’un fichier, l’omission de fichiers inattendus ou une boucle sans fin lorsque les fichiers sont renommés, déplacés, modifiés ou supprimés dans le répertoire en cours.

Exécuter dans une fenêtre d’invite de commande for /? et dir /? pour obtenir de l’aide sur ces deux commandes qui prennent en charge les deux types de caractères génériques sur la liste d’arguments.