Laredirection peut être utilisée pour réaffecter lespériphériques d'entrée standard (stdin), de sortie standard (stdout), et d'erreur standard (stderr) de leurs paramètres par défaut (le clavier et l'écran) à un autre périphérique tel que NUL ou le port série, à un fichier ou au  presse-papiers deWindows. Vous devez faire preuve de discernement lorsque vous utilisez la redirection avec un périphérique.

 

La redirection s'applique toujours à une commande spécifique et ne dure que le temps de cette commande. Lorsque la commande est terminée, les affectations de l'entrée standard, de la sortie standard et de l'erreur standard reviennent à ce qu'elles étaient avant la commande.

 

TCCLa sortie de 's est normalement en ANSI. Si vous souhaitez rediriger la sortie en Unicode, vous devez utiliser soit l'option de démarrage /U de la commande TCC ou l'optionUnicode Output dans TCMD.INI.

 

Dans les descriptions ci-dessous, filename signifie soit le nom d'un fichier, soit celui d'un périphérique approprié (CON pour le clavier et l'écran ; CLIP : (ou CLIP0 : - CLIP9 :) pour le presse-papiers ; NUL pour le périphérique "null", etc.)

 

Voici les options de redirection standard prises en charge par TCC (voir ci-dessous pour des options de redirection supplémentaires utilisant des poignées de fichiers numériques) :

 

Onestep        Redirection d'entrée

Onestep        Redirection de sortie

Onestep        Considérations particulières pour des commandes spécifiques

Onestep        NoClobber

Onestep        Redirections multiples

Onestep        Création d'un fichier vide

Onestep        Redirection par poignée

Onestep        "Redirection par "Here-document

Onestep        "Redirection "Here-string

 

Redirection d'entrée

 

< nom de fichierPour obtenir une entrée à partir d'un fichier ou d'un périphérique plutôt qu'à partir du clavier.

 

Redirection de sortie

 


écraser

ajouter

sortie standard

> filename

>> filename

erreur standard

>&> filename

>>&> filename

fusionner la sortie standard et l'erreur standard

>& filename

>>& filename

 

Pour utiliser la redirection, placez le symbole de redirection et le nom du fichier à la fin de la ligne de commande, après le nom de la commande et les éventuels paramètres . Par exemple, pour rediriger la sortie de la  commande DIR vers un fichier appelé DIRLIST, vous pouvez utiliser une ligne de commande comme celle-ci :

 

dir /b *.dat > dirlist

 

Vous pouvez utiliser n'importe quelle combinaison de redirection d'entrée et de sortie pour la même commande, en fonction de votre objectif. Par exemple, cette commande envoie l'entrée au programme externe SORT à partir du fichier DIRLIST, et envoie la sortie de SORT au fichier DIRLIST.SRT:

 

sort < dirlist > dirlist.srt

 

Vous pouvez rediriger du texte vers ou depuis le  presse-papiers de Windows en utilisant le pseudo nom de périphérique CLIP : (les deux points sont obligatoires). La redirection vers le presse-papiers se fait toujours en utilisant l'Unicode UTF16.

 

Si vous redirigez la sortie d'une seule commande interne comme DIR, la redirection se termine automatiquement lorsque cette commande est terminée. Si vous démarrez un fichier batch avec une redirection, toute la sortie du fichier batch est redirigée, et la redirection se termine lorsque le fichier batch est terminé. De même, si vous utilisez la redirection après la parenthèse fermante d'un groupe de commandes (par exemple, ...) > rapport), toutes les données de sortie du groupe de commandes sont redirigées et la redirection se termine lorsque le groupe de commandes est terminé.

 

Vous pouvez modifier le format de la sortie redirigée. Ces options remplacent les directives UnicodeOutput et UTF8Output du fichier TCMD.INI. Remarque : ces options ne fonctionnent que pour rediriger la sortie des commandes internes et des fichiers batch de TCC.

 

>:aLa sortie redirigée (STDOUT et/ou STDERR) est ANSI (caractères 8 bits)
>:uLa sortie redirigée est UTF16 Unicode
>:8 ou >:u8La sortie redirigée est UTF8

 

>>:aLa sortie redirigée annexée (STDOUT et/ou STDERR) est ANSI (caractères de 8 bits)
>>:uLa sortie redirigée en annexe est UTF16 Unicode
>>:8 ou >>:u8La sortie redirigée en annexe est UTF8

 

Considérations particulières pour des commandes spécifiques

 

Vous ne pouvez pas rediriger toute la sortie de l'exécution d'une  boucle DO en raison de la restriction selon laquelle la  commande DO et son ENDDO correspondant  ne peuvent pas faire partie d'un groupe de commandes.

 

Pour rediriger la sortie d'une  commande TEXT, ajoutez la syntaxe de redirection à la  commande TEXT.

 

Lorsque vous exécutez une  commande FOR ou GLOBAL, la redirection est effectuée séparément pour chaque itération, en fonction du répertoire courant pour cette itération. Cela peut entraîner l'écrasement répété du fichier de sortie ou la création d'un fichier de sortie distinct dans chaque répertoire. Pour générer un seul fichier de sortie cumulatif, utilisez le regroupement de commandes, comme dans l'exemple ci-dessous :

 

( for /r %f in (*.btm) echo %@full[%f] ) > c:\temp\btmlst

 

NoClobber

 

Lorsque la sortie est dirigée vers un fichier avec >, >&, ou >&>, et que ce fichier existe déjà, il sera écrasé. Vous pouvez protéger les fichiers existants en utilisant la  commande SETDOS /N1, le  paramètre Protéger les fichiers de sortie redirigés dans l 'onglet Démarrage des boîtes de dialogue de configuration, ou l' option Protéger les fichiers de sortie redirigés.

 

Lorsque la sortie est ajoutée à un fichier avec >>, >>&, ou >>&>, le fichier sera créé s'il n'existe pas déjà. Cependant, si le mode NoClobber est défini comme décrit ci-dessus, la redirection de l'appendice ne créera pas de nouveau fichier ; au lieu de cela, si le fichier de sortie n'existe pas, un message d'erreur "File not found" ou une erreur similaire sera affiché.

 

Vous pouvez annuler temporairement le réglage actuel de NoClobber en utilisant un point d'exclamation [!] après le symbole de redirection. Par exemple, pour rediriger la sortie de DIR vers le fichier DIROUT, et autoriser l'écrasement de tout fichier existant malgré le paramètre NoClobber:

 

dir >! dirout

 

Redirections multiples

 

Les redirections sont entièrement emboîtables. Par exemple, vous pouvez invoquer un fichier batch et rediriger toute sa sortie vers un fichier ou un périphérique. La redirection de la sortie d'une commande dans le fichier batch ne prend effet que pour cette commande ; lorsque la commande est terminée, la sortie est redirigée vers le fichier ou le périphérique de sortie utilisé pour l'ensemble du fichier batch.

 

Création d'un fichier vide

 

Vous pouvez utiliser la redirection pour créer un fichier vide (zéro octet). Pour ce faire, entrez >nom du fichier comme commande, sans commande réelle avant le  caractère >. Si vous avez activé la fonction Protect redirected output file, utilisez >!filename.

 

Redirection par handle

 

En plus des options de redirection ci-dessus, TCC prend également en charge la  syntaxeCMD:

 

n>fileRedirection de la poignée n vers le fichier nommé
n>&mRedirection de la poignéen au même endroit que la poignée m

 

Attention : Vous ne pouvez pas mettre d'espace entre n et>, ni entre >, & et m dans la deuxième forme . Les valeurs de n et m doivent être des chiffres décimaux et représenter des handles de fichiers .Windows définit 0, 1 et 2 comme indiqué dans le tableau ci-dessous.

 

Poignée

Affectation

0

entrée standard

1

sortie standard

2

erreur standard

 

La syntaxe n>file redirige la sortie de la poignée n vers le fichier. Vous pouvez utiliser cette forme pour rediriger deux handles vers des endroits différents. Par exemple :

 

dir > outfile 2> errfile

 

envoie la sortie normale vers un fichier appelé OUTFILE et tous les messages d'erreur vers un fichier appelé ERRFILE.

 

La  syntaxe n>&m redirige la poignée n vers la même destination que la poignée m précédemment assignée . Par exemple, pour envoyer l'erreur standard dans le même fichier que la sortie standard, vous pouvez utiliser cette commande:

 

dir > outfile 2>&1

 

Notez que vous pouvez effectuer les mêmes opérations en utilisant les fonctions de redirection standard. Les deux exemples ci-dessus pourraient être écrits sous la forme

 

dir > outfile >&> errfile

 

et

 

dir >& outfile

 

"Redirection "Ici-document

 

Partout où la redirection d'entrée est prise en charge, vous pouvez utiliser une approche "ici-document" semblable à celle de Linux. La syntaxe est la suivante :

 

program << word

 

Le fichier batch actuel est lu jusqu'à la prochaine occurrence du mot, et le texte résultant devient l'entrée standard du programme. Le texte résultant devient l'entrée standard du programme :

 

c:\test\program.exe << endinput

input 1

input 2

input 3

endinput

echo This is the next line after "program.exe"

 

Caractéristiques particulières de "here document" :

 

•Si le << est suivi d'untrait d'union (-), l'espace blanc en tête des lignes suivantes sera supprimé avant de les transmettre au programme (c'est-à-dire qu'elles seront effectivement justifiées à gauche).

 

•L'analyseur syntaxique procède à l'expansion des variables sur chaque ligne, sauf si le mot qui suit << est entre guillemets.

 

"Redirection "Here-string

 

La fonction "here-string" vous permet d'envoyer une chaîne de texte directement à l'entrée d'un programme. La syntaxe est la suivante :

 

program <<< string

 

Cette méthode est similaire à l'utilisation de KEYSTACK, mais elle est plus facile à utiliser pour la saisie de texte. (Si vous devez envoyer des touches spéciales ou insérer des attentes, vous devrez utiliser KEYSTACK). Par exemple, pour envoyer une chaîne de caractères à l'entrée standard du programme :

 

c:\test\program.exe <<< This is some input text.