Aller au contenu principal

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 ..
  • * 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.

astuce

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
remarque

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
remarque

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
remarque

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
remarque

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