Métacaractères
1. Explication
Les métacaractères sont appelés wildcard en anglais.
Les métacaractères permettent d’ajouter de la logique dans les commandes pour inclure uniquement certains fichiers.
La logique est très limitée, mais permet de faire certaines tâches rapidement.
Il existe 2 métacaractères.
-
?
remplace uniquement un caractère. (Plus rarement utilisé).- Le seul cas que le
?
peut remplacer 0 caractère, est lorsqu'il est à la fin du nom ou la position avant le point.
.
- Le seul cas que le
-
*
remplace plusieurs caractères (0 à plusieurs).
Pour les exemples ci-dessous, les 11 fichiers ci-dessous seront utilisés pour simuler les résultats.
- ABC123.zxz
- ABC123.txt
- ABCDEF1234.zxz
- ABCDEF1234.txt
- AC123.zxz
- AC123.txt
- AZC123.zxz
- AZC123.txt
- 123Z.rft
- Z123.rtf
- Z.rtf
2. Rechercher
Il est possible de rechercher des éléments avec des métacaractères.
Il est préférable de tester les métacaractères avec la commande dir
pour s'assurer de son comportement.
Une mauvaise utilisation des métacaractères avec copy
, move
, ren
, del
peut avoir des conséquences non réversibles.
2.1. Tous les fichiers - *.*
Il faut lire *.*
comme ceci.
Le premier *
consiste à n'importe quel nom de fichier
Le .
désigne le séparateur de l'extension du fichier.
Le deuxième *
consiste à n'importe quel fichier extension de fichier.
c:\demo> dir *.*
123Z.rtf
ABC123.txt
ABC123.zxz
ABCDEF1234.txt
ABCDEF1234.zxz
AC123.txt
AC123.zxz
AZC123.txt
AZC123.zxz
Z.rtf
Z123.rtf
2.2. Extension précise
Pour afficher tous les txt.
c:\demo> dir *.txt
ABC123.txt
ABCDEF1234.txt
AC123.txt
AZC123.txt
Pour afficher tous les zxz.
c:\demo> dir *.zxz
ABC123.zxz
ABCDEF1234.zxz
AC123.zxz
AZC123.zxz
2.3. Contient la lettre Z
dans leur nom
Il faut utiliser *Z*.*
c:\demo> dir *Z*.*
123Z.rtf
ABC123.zxz
ABCDEF1234.zxz
AC123.zxz
AZC123.txt
AZC123.zxz
Z.rtf
Z123.rtf
Le fichier Z.rtf et Z123.rtf sont dans le résultat, car le *
correspond à 0 ou plusieurs caractères.
2.4. Débute par la lettre Z
dans leur nom
Il faut utiliser Z*.*
c:\demo> dir Z*.*
Z.rtf
Z123.rtf
Le fichier Z.rtf est dans le résultat, car le *
correspond à 0 caractère également.
2.5. Contient 123
dans le nom
Il faut utiliser *123*.*
c:\demo> dir *123*.*
123Z.rtf
ABC123.txt
ABC123.zxz
ABCDEF1234.txt
ABCDEF1234.zxz
AC123.txt
AC123.zxz
AZC123.txt
AZC123.zxz
Z123.rtf
2.6. Contient la lettre C
et le chiffre 34
Il faut utiliser *C*34.*
c:\demo> dir *C*34*.*
ABCDEF1234.txt
ABCDEF1234.zxz
2.7. Contient la lettre C
et le chiffre 34
et un t
dans l'extension
Il faut utiliser *C*34.*t*
c:\demo> dir *C*34*.*t*
ABCDEF1234.txt
2.8. Fichier de 4 caractères
Il faut utiliser ????.*
c:\demo> dir ????.*
123Z.rtf
Z.rtf
Z123.rtf
Le fichier Z.rtf est dans le résultat, car le ?
correspond à 0 caractère, car il est utilisé avant le point.
Il doit avoir une constante après le ?
pour qu'il soit considéré pour un seul caractère.
2.9. Fichier de 5 caractères et qui se termine par 123
Il faut utiliser ??123.*
c:\demo> dir ??123.*
AC123.txt
AC123.zxz
Les fichiers ABC123.txt et ABC123.zxz ne sont pas dans le résultat, car il y a la constante 123
. Le ??
désigne réellement 2 caractères.
3. Autres exemples
Il est possible d'utiliser les métacaractères pour d'autres commandes.
3.1. Copier tous les fichiers d'un dossier
Il faut copier tous les fichiers .txt du dossier C:\Demo
dans le dossier C:\Test3
.
Le dossier de destination doit exister.
Seulement les fichiers seront copiés.
C:\> copy C:\Demo\*.txt C:\Test3\*.txt
3.2. Copier les fichiers avec une nouvelle extension
Il faut copier tous les fichiers .txt
pour .bck
.
Les fichiers seront dans le même dossier.
C:\Demo> copy *.txt *.bck
3.3. Supprimer les fichiers d'une extension précise
Il faut supprimer tous les fichiers .bck
.
C:\Demo> del *.bck
3.4. Renommer les fichiers avec une nouvelle extension
Il faut renommer les fichiers .txt
en .abc
.
C:\demo> ren *.txt *.abc