Les caractères génériques vous permettent de spécifier un fichier ou un groupe de fichiers en saisissant un nom de fichier partiel. Le répertoire approprié est parcouru pour trouver tous les fichiers correspondant au nom partiel. Vous pouvez également spécifier des fichiers à l'aide d'expressions régulières.
Lescaractères génériques sont généralement utilisés pour indiquer quels fichiers doivent être traités par une commande. Si vous devez spécifier les fichiers qui ne doivent pas être traités, consultez les rubriquesExclusionde fichiers (pour les commandes internes) ou SAUF (pour les commandes externes).
La plupart des commandes internes acceptent les noms de fichiers contenant des caractères génériques partout où un nom de fichier complet peut être utilisé. Il existe deux caractères génériques, l'astérisque * et le point d'interrogation ? En outre, vous pouvez spécifier un ensemble de caractères. Notez les problèmes liés à la correspondance des noms de fichiers courts.
AVERTISSEMENT : Lorsque vous utilisez un caractère générique pour rechercher les fichiers à traiter dans une commande telle que FOR ou DO, et que vous créez de nouveaux noms de fichiers (que ce soit en renommant des fichiers existants ou en créant de nouveaux fichiers), les nouveaux noms de fichiers peuvent correspondre au caractère générique que vous avez sélectionné et vous obliger à les traiter à nouveau.
TCC prend également en charge les caractères génériques dans les noms de répertoire (mais pas dans le nom du lecteur). Vous pouvez contrôler la récursivité des sous-répertoires en spécifiant * ou ** dans le chemin d'accès. Un * correspondra à un seul niveau de sous-répertoire ; un ** correspondra à tous les niveaux de sous-répertoire pour ce chemin d'accès. Les caractères génériques de répertoire prennent également en charge les expressions régulières. Les caractères génériques de répertoire ne peuvent pas être utilisés avec l'option /O :... (qui trie les entrées avant d'exécuter la commande). Et réfléchissez bien avant d'utiliser les caractères génériques de répertoire avec l'option /S (recurse subdirectories), car vous obtiendrez presque à coup sûr des résultats inattendus ! Certaines commandes ne prennent pas en charge les caractères génériques de répertoire, car ils seraient dénués de sens ou destructeurs (par exemple, TREE, @FILEOPEN, @FILEDATE, etc.).
). Par exemple :
| del c:\test\test2\*\foobar | Supprimer le fichier foobar dans n'importe quel sous-répertoire de c:\test\test2 (mais pas dans leurs sous-répertoires). |
| del c:\test\**\*foo*\foobar | Supprimer le fichier foobar dans n'importe quel sous-répertoire de c:\test (et tous leurs sous-répertoires) dont le nom contient "foo". |
| del c:\test\t*2\foobar | Supprimer le fichier foobar dans tout sous-répertoire de c:\test qui commence par unt et se termine par un 2. |
Caractère générique astérisque *
Un astérisque * dans une spécification de fichier signifie "un ensemble de caractères quelconques ou aucun caractère à cette position" . Par exemple, cette commande affichera une liste de tous les fichiers (y compris les répertoires, mais à l'exclusion des fichiers et des répertoires ayant au moins l'un des attributs hidden et system) dans le répertoire actuel :
dir *
Si vous souhaitez afficher tous les fichiers portant l' extension.TXT:
dir *.txt
Si vous savez que le fichier que vous recherchez a un nom de base qui commence parST et une extension qui commence par .D, vous pouvez le trouver de cette manière. Les noms de fichiers tels que STATE.DAT, STEVEN.DOC et ST.D seront tous affichés :
dir st*.d*
TCC vous permet également d'utiliser l'astérisque pour faire correspondre les noms de fichiers avec des lettres spécifiques à l'intérieur du nom. L' exemple suivant affichera tout fichier portant l' extension .TXT et dont le nom de base contient les lettres AM. Il affichera, par exemple ,AMPLE.TXT, STAMP.TXT, CLAM.TXT et AM.TXT, mais ignorera CLAIM.TXT:
dir *am*.txt
Un point d'interrogation ? correspond à n'importe quel caractère d'un nom de fichier. Vous pouvez placer le point d'interrogation n'importe où dans un nom de fichier et utiliser autant de points d'interrogation que nécessaire. L'exemple suivant affichera les fichiers portant des noms tels que LETTER.DOC, LATTER.DAT et LITTER.DU:
dir l?tter.d ??
L'utilisation d'un astérisque devant d'autres caractères et des plages de caractères décrites ci-dessous sont des améliorations de la syntaxe standard des caractères génériques de Microsoft et ne fonctionneront probablement pas correctement avec des logiciels autres que TCC.
"Les points d'interrogation supplémentaires dans la spécification du caractère générique sont ignorés si le nom du fichier est plus court que la spécification du caractère générique. Par exemple, si vous avez des fichiers appelés LETTER.DOC, LETTER1.DOC et LETTERA.DOC, cette commande affichera les trois noms :
dir lettre ?.doc
Le fichier LETTER.DOC est inclus dans l'affichage car le point d'interrogation "supplémentaire" à la fin de LETTER ? est ignoré lorsqu'il correspond au nom plus court LETTER.
Dans certains cas, le caractère générique ? peut être trop général. TCC vous permet également de spécifier l'ensemble exact des caractères que vous souhaitez accepter (ou exclure) dans une position particulière du nom de fichier en utilisant des crochets [ ]. À l'intérieur des crochets, vous pouvez indiquer les caractères acceptables ou les plages de caractères. Par exemple, si vous voulez faire correspondre LETTER0.DOC à LETTER9.DOC, vous pouvez utiliser cette commande :
dir letter[0-9].doc
Vous pourriez ainsi trouver tous les fichiers dont la deuxième lettre du nom est une voyelle. Cet exemple montre également comment mélanger les caractères génériques :
dir ?[aeiouy]*
Vous pouvez exclure un groupe de caractères ou une plage de caractères en utilisant un point d'exclamation [!] comme premier caractère à l'intérieur des crochets. Cet exemple affiche tous les noms de fichiers d'au moins 2 caractères, à l'exception de ceux dont la deuxième lettre du nom est une voyelle :
dir ?[!aeiouy]*
L'exemple suivant, qui sélectionne des fichiers tels que AIP, BIP et TIP mais pas NIP, montre comment vous pouvez utiliser plusieurs plages à l'intérieur des parenthèses. Il accepte les fichiers commençant parA, B, C, D, T, U ou V:
dir [a-dt-v]ip
Vous pouvez utiliser un point d'interrogation à l'intérieur des crochets, mais sa signification est légèrement différente de celle d'un caractère générique normal (sans crochets). Un caractère générique de type point d'interrogation normal correspond à n'importe quel caractère, mais il est ignoré lorsqu'il correspond à un nom plus court que la spécification du caractère générique, comme décrit ci-dessus. Un point d'interrogation entre crochets correspond à n'importe quel caractère, mais n'estpas ignoré lorsqu'il correspond à des noms de fichiers plus courts. Par exemple : dir letter[ ?].doc
dir letter[ ?].doc
affichera LETTER1.DOC et LETTERA.DOC, mais pas LETTER.DOC.
Vous pouvez répéter n'importe lequel des caractères génériques dans n'importe quelle combinaison au sein d'un même nom de fichier. Parexemple, la commande suivante répertorie tous les fichiers dont le troisième caractère estA, B ou C, suivi d'au moins zéro caractère supplémentaire, suivi d'unD, E ou F, suivi éventuellement de quelques caractères supplémentaires, et dont l'extension commence par P ou Q. Vous n'aurez probablement pas besoin de faire quelque chose d'aussi complexe, mais nous l'avons inclus pour vous montrer la flexibilité des caractères génériques étendus :
dir ? ?[abc]*[def]*.[pq]*
Vous pouvez également utiliser la syntaxe des caractères génériques entre crochets pour résoudre un conflit entre les noms de fichiers longs contenant des points-virgules [;] et l'utilisation d'un point-virgule pour indiquer une liste d'inclusion. Par exemple, si vous avez un fichier sur un lecteur LFN nommé C:\DATA\LETTRE1;V2 et que vous entrez cette commande :
del \data\lettre1;v2
vous n'obtiendrez pas les résultats escomptés. Au lieu de supprimer le fichier nommé, TCC tentera de supprimer LETTRE1 puis V2, car le point-virgule indique une liste d'inclusion. Cependant, si vous utilisez des crochets autour du point-virgule, il sera interprété comme un caractère de nom de fichier et non comme un séparateur de liste d'inclusion. Par exemple, cette commande supprimera le fichier nommé ci-dessus :
del \data\letter1[ ;]v2
Correspondance entre les noms de fichiers courts
Si l'option de configuration Search for SFNs est activée, les recherches par caractères génériques acceptent une correspondance sur le LFN ou le SFN pour correspondre au comportement de CMD. Certains fichiers peuvent ainsi être trouvés uniquement en raison de la correspondance avec le SFN. Dans la plupart des cas, cette situation n'est pas souhaitable et peut être évitée en désactivant l'option (par défaut).
Remarque : le processus d'expansion du joker tentera d'autoriser à la fois la correspondance "d'extension" de type CMD(une seule extension, à la fin du mot) et la correspondance de nom de fichier avancée de type TCC (permettant des choses comme *.*.abc) lorsqu'un astérisque est rencontré dans la destination d'une commande COPY, MOVE ou REN/RENAME.
Vous pouvez également utiliser des expressions régulières pour tester les noms de fichiers. (Le type d'expressions régulières à utiliser est spécifié par l' option Syntaxe des expressions régulières ).
La syntaxe est la suivante :
::regex
Par exemple :
dir ::ca[td]
Notez que l'utilisation d'expressions régulières ralentira vos recherches dans les répertoires : Windows ne les prenant pas en charge, l'analyseur doit convertir le nom de fichier en *, récupérer tous les noms de fichier, puis les faire correspondre à l'expression.
Si vous avez des caractères spéciaux (espaces blancs, caractères de redirection, caractères d'échappement, etc.) dans votre expression régulière, vous devrez la mettre entre guillemets. ) dans votre expression régulière, vous devez la placer entre guillemets. Par exemple :
dir "::^\w{1,8}\.btm$"
Pour plus d'informations sur la syntaxe, voir Syntaxe des expressions régulières.
Take Command et TCC incluent une boîte de dialogue d'analyse d'expressions régulières (Ctrl-F7 sur la ligne de commande ou dans le menu Outils). TCC ou dans le menu Outils de Take Command.) Il y a deux boîtes d'édition :
1) La première contient l'expression régulière à tester. Si l'expression régulière est valide, la boîte de dialogue affiche une coche verte à droite de la boîte d'édition de l'expression. Si l'expression régulière n'est pas valide, la boîte de dialogue affiche un X rouge.
2) La deuxième boîte d'édition est destinée au texte que vous souhaitez comparer à l'expression régulière. Si le texte correspond à l'expression régulière, la boîte de dialogue affiche une coche verte à droite de la zone d'édition du test. Si le texte ne correspond pas, la boîte de dialogue affiche un X rouge.
Vous pouvez choisir la syntaxe d'expression régulière que vous souhaitez utiliser (Perl, Ruby, Java, etc.). L'analyseur utilisera par défaut la syntaxe courante pour les expressions régulières Take Command et TCC.
