Les caractères génériques, ou wildcards, permettent de sélectionner plusieurs fichiers ou répertoires à partir d’un seul motif.
Sous l’invite de commandes Windows, les deux caractères les plus importants sont :
*
?
Ils paraissent simples. Ils le sont presque.
Le « presque » est important, car Windows conserve plusieurs comportements hérités de DOS et des noms courts 8.3 qui peuvent produire des résultats moins intuitifs qu’un simple cours de théorie ne le laisse penser.
Avant d’utiliser un wildcard avec
DEL, vérifiez le même motif avecDIR. Voir trois fichiers de trop est agaçant. Les supprimer est une expérience pédagogique beaucoup plus durable.
DOS ou Windows CMD ?
On parle encore souvent de :
commandes DOS
pour désigner des commandes comme :
DIR
COPY
DEL
MOVE
XCOPY
Ces commandes possèdent effectivement un héritage historique venant de DOS.
Mais sur Windows 10, Windows 11 ou Windows Server moderne, elles sont exécutées dans :
cmd.exe
Windows Command Prompt
Windows moderne n’est donc pas « DOS avec une interface graphique ».
Dans cet article, nous parlerons surtout des wildcards de CMD, tout en gardant à l’esprit leur héritage DOS.
Les deux caractères génériques principaux
L’astérisque : *
L’astérisque correspond à une séquence de caractères de longueur variable.
Exemples classiques :
*.txt
log*
rapport*.pdf
Le motif :
log*
peut par exemple sélectionner :
log
log.txt
log1.txt
logs
log_2026_08_23.csv
L’astérisque peut donc représenter :
aucun caractère
un caractère
plusieurs caractères
Le point d’interrogation : ?
On apprend généralement que :
?
remplace un caractère.
C’est une bonne approximation, mais les règles de correspondance historiques de Windows sont plus subtiles.
Par exemple :
DIR read???.txt
peut correspondre notamment à :
Read.txt
Read1.txt
Read12.txt
Read123.txt
Readme1.txt
mais pas à un nom dépassant le nombre de caractères permis par le motif.
Il est donc plus prudent de retenir :
Dans les motifs de fichiers CMD,
?limite la position à un caractère, mais les règles historiques DOS/Windows peuvent autoriser moins de caractères en fin de composante.
Tester les motifs avec DIR
DIR est l’outil idéal pour expérimenter sans détruire quoi que ce soit.
Tout afficher
DIR *
ou, historiquement :
DIR *.*
Tous les fichiers TXT
DIR *.txt
Noms commençant par log
DIR log*
Noms commençant par rapport
DIR rapport*.pdf
Motif avec caractères variables
DIR f???.txt
Ce motif recherche des noms commençant par :
f
suivis d’un nombre limité de caractères avant :
.txt
*.* ne signifie pas « uniquement les fichiers avec extension »
C’est l’un des pièges historiques les plus connus.
On pourrait logiquement imaginer :
*.*
comme :
n'importe quel nom
+
un point
+
n'importe quelle extension
Mais sous les règles Windows/DOS traditionnelles, :
*.*
est utilisé comme un motif correspondant en pratique à :
tout
Il ne faut donc pas compter sur ce motif pour exclure les fichiers sans extension.
* suffit souvent
Sous CMD moderne :
DIR *
est généralement plus clair lorsque l’intention est simplement :
tout afficher
Le très ancien réflexe :
*.*
reste néanmoins omniprésent dans les scripts et documentations Windows.
Les wildcards peuvent sélectionner des répertoires
Avec DIR, les motifs ne concernent pas uniquement les fichiers.
Par exemple :
DIR projet*
peut afficher des fichiers mais également des répertoires dont le nom correspond.
Pour demander uniquement les répertoires :
DIR /A:D projet*
Pour demander uniquement les fichiers :
DIR /A:-D projet*
Afficher les fichiers cachés
Par défaut, certains attributs peuvent influencer ce que vous voyez.
Pour afficher tous les éléments, y compris cachés et système :
DIR /A
Avec un motif :
DIR /A *.log
C’est utile avant une opération destructive : un fichier invisible dans une liste incomplète reste parfaitement supprimable.
Utiliser DEL avec des wildcards
DEL accepte * et ?.
Supprimer tous les fichiers .bak
DEL *.bak
Supprimer les fichiers dont le nom commence par test
DEL test*
Motif plus précis
DEL rapport_2026_??.bak
La règle d’or avec DEL
Avant :
DEL *.bak
faites :
DIR *.bak
Avant :
DEL test*
faites :
DIR test*
Cette habitude coûte quelques secondes et peut sauver plusieurs heures de restauration.
DEL *.* mérite une attention particulière
Cette commande :
DEL *.*
demande la suppression de tous les fichiers correspondant dans le répertoire courant.
CMD affiche normalement une confirmation dans ce cas.
Mais la présence d’une confirmation ne doit jamais devenir votre stratégie de sauvegarde.
DEL ne supprime pas normalement les sous-répertoires eux-mêmes
Pour supprimer une arborescence, on utilise plutôt :
RMDIR /S dossier
ou :
RD /S dossier
C’est une opération différente de :
DEL
qui cible les fichiers.
Attention cependant : fournir un nom de dossier à DEL peut conduire la commande à viser les fichiers contenus dans celui-ci. Il faut donc rester extrêmement prudent avec les chemins ambigus.
Les noms courts 8.3 : le fantôme de DOS
Windows peut conserver, selon le volume et sa configuration, un nom court compatible avec l’ancien format :
8 caractères
+
3 caractères d'extension
Par exemple, un fichier nommé :
Rapport financier annuel.txt
pourrait posséder un nom court ressemblant à :
RAPPOR~1.TXT
Voir les noms courts
DIR possède l’option :
/X
Exemple :
DIR /X
Lorsqu’un nom court existe, il apparaît à côté du nom long.
Pourquoi cela compte pour les wildcards ?
Parce qu’un motif peut parfois correspondre :
au nom long
OU
au nom court 8.3
Vous pouvez donc obtenir un fichier qui semble ne pas correspondre visuellement au motif saisi.
Par exemple, un wildcard ressemblant à :
DIR T97*
peut trouver un fichier dont le nom long ne commence pas explicitement par :
T97
mais dont le nom court le fait.
Pourquoi ce comportement est dangereux avec DEL
Si :
DIR motif*
affiche deux fichiers alors que vous n’en attendiez qu’un, :
DEL motif*
risque naturellement de viser les deux.
Avec les wildcards Windows, ne raisonnez jamais uniquement à partir de ce que le nom long semble montrer. Vérifiez la sélection réelle.
Copier plusieurs fichiers avec COPY
COPY accepte lui aussi des motifs.
Copier les TXT
COPY *.txt D:\Sauvegarde\
Copier les PDF commençant par facture
COPY facture*.pdf D:\Comptabilite\
Copier les fichiers d’un dossier
COPY C:\Source\* D:\Destination\
COPY est conçu principalement pour les fichiers.
Il ne copie pas récursivement toute une arborescence de répertoires comme le ferait un outil spécialisé.
Attention à une particularité de COPY
COPY sait également concaténer plusieurs fichiers.
Par exemple :
COPY *.txt resultat.txt
peut être interprété comme une demande de combinaison de plusieurs fichiers dans une destination unique selon la syntaxe utilisée.
Pour les opérations complexes sur des arborescences, utilisez plutôt :
XCOPY
ou
ROBOCOPY
XCOPY et les wildcards
XCOPY peut copier des fichiers et des sous-répertoires.
Par exemple :
XCOPY C:\Projets\*.txt D:\Backup\ /S
L’option :
/S
copie les sous-répertoires contenant des fichiers correspondants, mais ignore les répertoires vides.
Pour inclure également les dossiers vides :
XCOPY C:\Projets\*.txt D:\Backup\ /S /E
XCOPY reste utile, mais Robocopy est souvent préférable
Pour une copie moderne d’arborescence, Microsoft fournit aussi :
ROBOCOPY
Exemple :
ROBOCOPY C:\Source D:\Backup *.txt /S
Robocopy apporte notamment :
- reprise ;
- journalisation ;
- filtres ;
- gestion plus avancée des métadonnées ;
- copie multithread ;
- modes de synchronisation.
Déplacer avec MOVE
MOVE accepte les wildcards pour déplacer plusieurs fichiers.
Déplacer tous les PDF
MOVE *.pdf C:\Archives\
Déplacer certains journaux
MOVE log_2026*.txt C:\Archives\Logs\
Comme toujours, vérifiez d’abord :
DIR log_2026*.txt
Les espaces dans les chemins
Un chemin comme :
C:\Mes Documents\
doit généralement être entouré de guillemets :
DIR "C:\Mes Documents\*.txt"
Pour copier :
COPY "*.txt" "D:\Mes Sauvegardes\"
Ou :
MOVE "rapport*.pdf" "C:\Archives PDF\"
Le wildcard reste à l’intérieur des guillemets
Cette syntaxe est parfaitement normale :
"C:\Logs\*.txt"
Les guillemets protègent surtout :
- les espaces ;
- certains caractères particuliers du shell.
Ils ne transforment pas automatiquement l’astérisque en caractère littéral.
Les wildcards dans FOR
Ils deviennent particulièrement utiles dans les scripts batch.
Dans une commande interactive :
FOR %F IN (*.txt) DO ECHO %F
Dans un fichier .bat ou .cmd, il faut doubler le pourcentage :
FOR %%F IN (*.txt) DO ECHO %%F
Traiter plusieurs extensions
FOR %%F IN (*.txt *.log *.csv) DO ECHO %%F
Chaque fichier correspondant est traité successivement.
Exemple de sauvegarde
@ECHO OFF
REM Copier tous les fichiers .txt
FOR %%F IN (*.txt) DO COPY "%%F" "D:\Backup\"
Le :
REM
est important.
# n’est pas un commentaire CMD
Cette notation :
# Copier les fichiers
est familière sous :
- Bash ;
- Python ;
- de nombreux fichiers de configuration.
Mais ce n’est pas la syntaxe de commentaire d’un script CMD.
Utilisez :
REM Copier les fichiers
Par exemple :
@ECHO OFF
REM Afficher les fichiers .bak
DIR *.bak
REM Les supprimer après validation
DEL *.bak
Les wildcards ne sont pas des expressions régulières
Le motif :
*.txt
n’est pas une expression régulière.
Les wildcards offrent essentiellement une sélection simple basée sur :
*
?
Une expression régulière possède une syntaxe et une puissance différentes.
Par exemple, rechercher précisément :
rapport suivi de exactement 4 chiffres
dépasse rapidement ce qu’il est agréable de faire uniquement avec les wildcards CMD.
CMD et PowerShell n’utilisent pas exactement les mêmes règles
PowerShell possède lui aussi des wildcards :
*
?
mais il ajoute notamment des constructions comme :
[abc]
et possède sa propre logique de correspondance.
Par exemple :
Get-ChildItem *.txt
est une commande PowerShell, tandis que :
DIR *.txt
est la commande historique CMD.
Dans PowerShell, dir existe aussi comme alias de :
Get-ChildItem
Ce qui signifie que deux consoles affichant :
dir *.txt
peuvent en réalité utiliser des moteurs différents.
Identifier le shell avant de diagnostiquer
Avant de copier une commande trouvée dans une documentation, demandez-vous si elle est destinée à :
CMD
PowerShell
Bash
WSL
Le prompt peut donner un indice.
CMD ressemble souvent à :
C:\Users\Alice>
PowerShell :
PS C:\Users\Alice>
Bash :
alice@machine:~$
Les pièges les plus fréquents
Penser que ? correspond toujours exactement à un caractère
Dans les règles de fichiers historiques de Windows, notamment avec DIR, le comportement peut être plus souple à la fin d’un composant de nom.
Testez donc le motif réel.
Penser que *.* signifie uniquement « fichiers avec extension »
Non.
Sous Windows, :
*.*
est historiquement assimilé à une sélection générale.
Oublier les noms courts 8.3
Un wildcard peut trouver un fichier à travers son nom court même si son nom long semble ne pas correspondre.
Pour vérifier :
DIR /X
Tester directement avec DEL
Mauvaise méthode :
DEL projet*.bak
Bonne méthode :
DIR projet*.bak
DEL projet*.bak
Utiliser # comme commentaire
Incorrect dans un batch CMD :
# Supprimer les backups
Correct :
REM Supprimer les backups
Confondre COPY et copie récursive
COPY travaille principalement sur les fichiers.
Pour une arborescence :
XCOPY
ROBOCOPY
sont plus adaptés.
Oublier les guillemets
Incorrect :
COPY *.txt C:\Mes Documents\
Correct :
COPY *.txt "C:\Mes Documents\"
Exemples pratiques avec DIR
| Commande | But |
|---|---|
DIR * |
Afficher l’ensemble du contenu correspondant |
DIR *.txt |
Rechercher les noms correspondant au motif TXT |
DIR log* |
Noms commençant par log |
DIR *2026* |
Noms contenant 2026 |
DIR rapport?.pdf |
Rapport avec une position variable supplémentaire selon la sémantique Windows |
DIR /A:D projet* |
Répertoires commençant par projet |
DIR /A:-D *.log |
Fichiers LOG, hors répertoires |
DIR /X |
Afficher également les noms courts 8.3 |
Exemples pratiques avec DEL
| Commande | Effet |
|---|---|
DEL *.tmp |
Supprimer les fichiers correspondant au motif TMP |
DEL rapport*.bak |
Supprimer les sauvegardes commençant par rapport |
DEL /P *.bak |
Demander confirmation pour chaque fichier |
DEL /Q *.tmp |
Mode silencieux pour les suppressions avec wildcard |
L’option :
/P
est particulièrement intéressante lorsqu’une sélection mérite une validation manuelle.
L’option :
/Q
fait exactement l’inverse.
Autrement dit, utilisez-la lorsque vous savez très précisément ce que vous faites, pas pour accélérer votre apprentissage des sauvegardes.
Une méthode sûre avant une opération en masse
Pour une sélection comme :
rapport_2026*.bak
procédez dans cet ordre :
REM 1. Vérifier la sélection
DIR rapport_2026*.bak
REM 2. Vérifier les noms courts si le résultat paraît étrange
DIR /X rapport_2026*.bak
REM 3. Supprimer avec confirmation si nécessaire
DEL /P rapport_2026*.bak
Wildcards utiles à retenir
| Motif | Signification générale |
|---|---|
* |
Séquence de caractères de longueur variable |
? |
Position de caractère variable, avec subtilités historiques Windows |
*.txt |
Noms correspondant au motif d’extension TXT |
log* |
Noms commençant par log |
*log* |
Noms contenant log |
rapport?.txt |
Rapport suivi d’une position variable avant .txt |
*.* |
Motif historique Windows correspondant pratiquement à tout |
Ce qu’il faut retenir
- Sur Windows moderne, on parle surtout de CMD plutôt que de DOS.
*correspond à une séquence de caractères de longueur variable.?possède une sémantique plus subtile que « exactement un caractère » dans certains traitements historiques Windows.*.*ne signifie pas uniquement « tous les fichiers ayant une extension ».- Les noms courts 8.3 peuvent provoquer des correspondances surprenantes.
DIR /Xpermet d’examiner les noms courts lorsqu’ils existent.- Avant un
DELavec wildcard, utilisez le même motif avecDIR. COPYest adapté aux fichiers ;XCOPYet surtoutROBOCOPYsont plus adaptés aux arborescences complexes.MOVEaccepte également les motifs pour déplacer plusieurs fichiers.- Les chemins contenant des espaces doivent être correctement placés entre guillemets.
- Dans un fichier batch CMD, le commentaire officiel utilise
REM, pas#. - Les wildcards CMD ne sont ni les wildcards PowerShell ni des expressions régulières.
Conclusion : deux caractères, beaucoup de responsabilités
Les wildcards permettent de transformer :
DIR fichier1.txt
DIR fichier2.txt
DIR fichier3.txt
...
en :
DIR *.txt
et de transformer une longue série d’opérations répétitives en une seule commande.
Leur puissance vient précisément du fait qu’un petit motif peut concerner énormément de fichiers.
La bonne méthode est donc :
construire le motif
↓
le tester avec DIR
↓
vérifier le résultat
↓
seulement ensuite copier, déplacer ou supprimer
Un astérisque correctement placé fait gagner beaucoup de temps.
Un astérisque incorrectement placé peut également faire gagner beaucoup d’espace disque.
Windows ne juge pas l’intention.
Il développe le motif et poursuit sa journée.
