Lorsque vous changez de répertoire à l'aide d'une  commande automatique de changement de répertoire, CD, CDD ou PUSHD, TCC doit trouver le répertoire dans lequel vous voulez changer. Pour ce faire, elle vérifie d'abord si vous avez spécifié le nom d'un sous-répertoire existant sous le répertoire actuel, ou le nom d'un répertoire existant avec un chemin d'accès relatif ou complet ou une lettre de lecteur. Si c'est le cas, TCC passe à ce répertoire et ne poursuit pas la recherche.

 

Cette méthode de recherche nécessite que vous naviguiez manuellement dans l'arborescence des répertoires et que vous saisissiez le nom complet de chaque répertoire que vous souhaitez modifier. Les recherches dans les répertoires étendus accélèrent considérablement le processus de navigation en permettant de trouver le répertoire souhaité, même s'il s'agit d'un répertoire de base. TCC de trouver le répertoire souhaité, même si vous ne saisissez qu'une petite partie de son nom.

 

Lorsque la première méthode de recherche échoue, TCC essaie de trouver le répertoire demandé via la  variable CDPATH, puis via une recherche dans les répertoires étendus. Cette section ne traite que des recherches dans les répertoires étendus, qui sont plus souples et plus couramment utilisées que CDPATH.

 

Les recherches dans les répertoires étendus utilisent une base de données de noms de répertoires pour faciliter le passage au répertoire correct. Labase de données n'est utilisée que si la recherche dans les répertoires étendus est activée et si la recherche explicite dans les répertoires et la  recherche CDPATH ne parviennent pas à trouver le répertoire demandé.

 

Une recherche de répertoire étendue trouve automatiquement le chemin d'accès correct au répertoire demandé et le modifie si ce répertoire existe dans votre base de données de répertoires. Si plusieurs répertoires de la base de données correspondent au nom que vous avez saisi, une fenêtre contextuelle s'affiche et vous pouvez choisir le répertoire que vous souhaitez.

 

Si la directive TCMD.INI EverythingSearch est définie (OPTION / Startup / Everything Search), TCC utilisera Everything Search (http://www.voidtools.com) au lieu de sa propre base de données pour les recherches floues dans les répertoires. Everything Search est plus rapide, mais ne fonctionne que sur les disques NTFS locaux. Définir EverythingSearch équivaut à définir FuzzyCD=3(*nom*). Le programme d'installation d Take Command installera automatiquementEverything Search.

 

Vous pouvez déplacer et/ou redimensionner la fenêtre de recherche de répertoire. TCC EverythingSearch utilisera la nouvelle position et la nouvelle taille la prochaine fois que la fenêtre de recherche de répertoire sera appelée. Vous pouvez également modifier les touches utilisées dans la fenêtre contextuelle à l'aide de directives d'affectation des touches.

 

Pour utiliser les recherches étendues dans les répertoires, vous devez les activer explicitement (voir ci-dessous) et créer la base de données des répertoires.

 

La base de données de recherche étendue

 

Pour créer ou mettre à jour la base de données des noms de répertoires, utilisez la  commande CDD /S. Lorsque vous créez la base de données avec CDD /S, vous pouvez spécifier les lecteurs à inclure. Si vous activez la recherche étendue dans les répertoires et que vous ne créez pas la base de données, celle-ci sera créée automatiquement la première fois qu'elle sera nécessaire et inclura tous les disques durs locaux.

 

La base de données est stockée dans le fichier JPSTREE.IDX. Vous pouvez spécifier l'emplacement de ce fichier dans l 'onglet Ligne de commande des boîtes de dialogue de configuration. Si cette option n'est pas définie, TCC recherche un fichier JPSTREE.IDX existant dans le répertoire LOCALAPPDATA (une variable d'environnement prédéfinie par Windows). Si le fichier n'existe pas, TCC le crée dans le répertoire "C:\ProgramData\JP Software".

 

Si vous utilisez une commande interne pour créer ou supprimer un répertoire, la base de données des répertoires est automatiquement mise à jour pour refléter la modification de votre structure de répertoires.

 

La  variableTREEEXCLUDE peut être utilisée pour spécifier les lecteurs/répertoires à exclure de la base de données des répertoires.

 

Les commandes internes qui peuvent modifier la structure du répertoire et entraîner une mise à jour automatique du fichier sont MD, RD, COPY /S, DEL /X, MOVE /S et REN.  La  commande MD /N peut être utilisée pour créer un répertoire sans mettre à jour la base de données des répertoires. Cette commande est utile pour créer un répertoire temporaire qui ne doit pas apparaître dans la base de données.

 

Activation des recherches étendues

 

Pour activer les recherches étendues dans les répertoires et contrôler leur fonctionnement, vous devez définir le niveau de recherche dans l 'onglet Ligne de commande des boîtes de dialogue de configuration.

 

•Si le niveau de recherche = 0, les recherches étendues sont désactivées, labase de données JPSTREE.IDX est ignorée et les changements automatiques de répertoire CD, CDD, PUSHD et recherchent les répertoires en utilisant uniquement des noms explicites et CDPATH. Il s'agit de la valeur par défaut.

 

•Si le niveau de recherche = 1et qu'une recherche étendue est nécessaire , TCC r echerche dans la base de donnéesJPSTREE.IDX lesnoms derépertoires quicorrespondentexactementau nom que vous avez spécifié.

 

•Si le niveau de recherche = 2et qu'une recherche étendue est nécessaire , TCC recherchera d'abord dans la base de données les correspondances exactes, comme lorsque le niveau de recherche = 1. Si le répertoire demandé n'est pas trouvé, une deuxième recherche est effectuée dans la base de données, à la recherche de noms de répertoires commençant par et correspondant au nom spécifié.

 

•Si le niveau de recherche = 3et qu'une recherche étendue est nécessaire , TCC recherche d'abord les correspondances exactes dans la base de données, comme lorsque le niveau de recherche = 1. Si le répertoire demandé n'est pas trouvé, une deuxième recherche est effectuée dans la base de données, à la recherche de noms de répertoires contenant le nom que vous avez spécifié.

 

Par exemple, supposons que vous ayez un répertoire appelé C:\DATA\MYDIR, que CDPATH ne soit pas défini et que C:\DATA ne soit pas le répertoire actuel du lecteur C :. Le tableau suivant montre quelle  commande CDD vous pourriez utiliser pour passer à ce répertoire.

 

Niveau de recherche

Type de recherche étendue

Commande CDD typique

0

CDPATH uniquement (par défaut)

cdd c:\data\mdir

1

CDPATH ou correspondance exacte

cdd mydir

2

CDPATH ou correspondance principale

cdd myd

3

CDPATH ou toute autre correspondance

cdd yd

 

Larecherche étendue dans les répertoires n'est pas utilisée si vous spécifiez un chemin d'accès complet (commençant par une barre oblique inverse  ou par une lettre de lecteur et une barre oblique inverse). Si vous utilisez un nom commençant par une lettre de lecteur (par exemple C:MYDIR), la recherche étendue n'examinera que les répertoires de ce lecteur.

 

Forcer une recherche étendue avec des caractères génériques

 

Normalement, vous tapez un nom de répertoire spécifique que TCC et la recherche se déroule comme décrit dans les sections précédentes. Cependant, vous pouvez également forcer TCC à effectuer une recherche étendue dans les répertoires en utilisant des caractères génériques dans le nom du répertoire. Si vous utilisez un caractère générique, une recherche étendue sera effectuée, que les recherches étendues aient été activées ou non.

 

Lorsque TCC change de répertoire et qu'il trouve des caractères génériques dans le nom du répertoire, il saute les étapes derecherche  explicite et CDPATH et passe directement à larecherche étendue .

 

Si une seule correspondance est trouvée, la modification est effectuée immédiatement. Si plusieurs correspondances sont trouvées, une fenêtre contextuelle s'affiche avec tous les répertoires correspondants.

 

Les caractères génériques ne peuvent être utilisés que dans le dernier nom de répertoire du chemin d'accès (après la dernière barre oblique inverse du nom du chemin d'accès). Par exemple,vous pouvez trouver COMM\*A* (tous les répertoires dont le répertoire parent est COMM et qui ont unA quelque part dans leur nom), mais vous ne pouvez pas trouver CO?M\*A* parce qu'il utilise un joker avant la dernière barre oblique inverse.

 

Si vous utilisez des caractères génériques dans le nom du répertoire comme décrit ici et que la base de données de recherche de répertoire étendue n'existe pas, elle sera créée automatiquement la première fois qu'un caractère générique sera utilisé. Vous pouvez mettre à jour la base de données à tout moment avec CDD /S.

 

En interne, les recherches dans les répertoires étendus utilisent des caractères génériques pour analyser la base de données des répertoires. Si leniveau de recherche est défini sur 2, une recherche étendue recherche le nom que vous avez tapé suivi d'un astérisque (c'est-à-dire DIRNAME*). Si le niveau de recherche est défini sur 3, la recherche porte sur le nom précédé et suivi d'un astérisque (c'est-à-dire*DIRNAME*).

 

Ces caractères génériques internes seront utilisés en plus des caractères génériques que vous utilisez dans le nom. Par exemple, si vous recherchez ABC?DEF (ABC suivi de n'importe quel caractère suivi de DEF) et que le niveau de recherche est fixé à 3, TCCrecherchera *ABC?DEF*dans la base de données du répertoire .

 

Désactivation des recherches étendues dans les fichiers batch

 

Lorsque vous écrivez des fichiers par lots, vous pouvez utiliser la  commande CD ou CDD pour changer de répertoire sans déclencher de recherche étendue. Par exemple, il se peut que la recherche échoue (plutôt que d'interroger la base de données de recherche étendue) si un répertoire n'existe pas, ou que vous souhaitiez vous assurer que la fenêtre contextuelle de recherche étendue ne s'affiche pas dans un fichier batch conçu pour être exécuté en mode sans surveillance.

 

Pour désactiver les recherches étendues, utilisez l'option /N de CD ou CDD.  Lorsque cette option est utilisée et qu'un répertoire n'existe pas sous le répertoire actuel ou dans le CDPATH, la commande échoue avec un message d'erreur et n'effectue pas de recherche dans la base de données de recherche étendue. Par exemple, cette commande peut déclencher une recherche étendue :

 

cdd testdir

 

mais pas celle-ci :

 

cdd /n testdir

 

Notez que cette option n'est pas disponible pour PUSHD.  Pour réaliser la même fonction en utilisant PUSHD, enregistrez le répertoire courant avec PUSHD (sans paramètres) et utilisez ensuite CDD /N pour changer de répertoire, par exemple :

 

pushd

cdd /n testdir