La redirection peut être utilisée pour réaffecter l'entrée standard (Stdin), sortie standard (Stdout), et l'erreur type (stderr) périphériques depuis leurs paramètres par défaut (le clavier et l'écran) vers un autre périphérique tel qu'un NUL ou un port série, vers un fichier ou vers le Windows presse-papiers. Vous devez faire preuve d'une certaine discrétion lorsque vous utilisez la redirection avec un appareil.

 

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

 

TCCLa sortie de est normalement en ANSI. Si vous souhaitez rediriger la sortie en Unicode, vous devez soit utiliser le Option de démarrage /U in TCCou de la Sortie Unicode option dans TCMD.INI.

 

Dans les descriptions ci-dessous, nom de fichier signifie soit le nom d'un fichier, soit d'un périphérique approprié (AVEC pour le clavier et l'écran ; AGRAFE: (ou CLIP0 : - CLIP9 :) pour le presse-papiers ; NUL pour le périphérique « nul », etc.).

 

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

 

Un pas        Redirection d'entrée

Un pas        Redirection de sortie

Un pas        Considérations spéciales pour des commandes spécifiques

Un pas        NonClobber

Un pas        Redirections multiples

Un pas        Création d'un fichier vide

Un pas        Redirection par handle

Un pas        Redirection « ici-document »

Un pas        Redirection "ici-chaîne"

 

Redirection d'entrée

 

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

 

Redirection de sortie

 


écraser

ajouter

sortie standard

>  nom du fichier

>>   nom du fichier

erreur standard

>>&> nom du fichier

>>&> nom du fichier

fusionner la sortie standard et l'erreur standard

>&  nom du fichier

>>&  nom du fichier

 

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

 

rép /b *.dat > liste de répertoires

 

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 une entrée au programme externe TRIER à partir du fichier LISTE DES RÉPERTOIRES, et envoie la sortie de TRIER au fichier DIRLISTE.SRT:

 

trier liste de répertoires.srt

 

Vous pouvez rediriger le texte vers ou depuis le Windows presse-papiers en utilisant le nom du pseudo-appareil AGRAFE: (les deux points sont obligatoires). La redirection vers le presse-papiers se fait toujours en utilisant UTF16 Unicode.

 

Si vous redirigez la sortie d'une seule commande interne comme DIR, la redirection se termine automatiquement lorsque cette commande est effectuée. Si vous démarrez un fichier batch avec 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 commande (par exemple., ...) > rapport), toute la sortie du groupe de commandes est redirigée et la redirection se termine lorsque le groupe de commandes est terminé.

 

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

 

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

 

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

 

Considérations spéciales pour des commandes spécifiques

 

Vous ne pouvez pas rediriger toutes les sorties de l'exécution d'un DO boucle en raison de la restriction selon laquelle le DO commande et sa correspondance Endo ne peut pas faire partie d’un groupe de commandement.

 

Pour rediriger la sortie d'un TEXTE commande, ajoutez la syntaxe de redirection au TEXTE commander.

 

Lorsque vous exécutez un POUR or GLOBAL commande, la redirection est effectuée séparément pour chaque itération, en fonction du répertoire actuel pour cette itération. Cela peut entraîner un é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 Regroupement de commandes comme dans l'exemple ci-dessous :

 

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

 

NonClobber

 

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 le RÉGLAGES /N1, la commande Protéger les fichiers de sortie redirigés mise sur le Onglet Démarrage des boîtes de dialogue de configuration, ou le Protéger le fichier de sortie redirigé option.

 

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 d'ajout ne créera pas de nouveau fichier ; au lieu de cela, si le fichier de sortie n'existe pas, un « Fichier introuvable » ou une erreur similaire s'affichera.

 

Vous pouvez temporairement remplacer le paramètre 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 autorise l'écrasement de tout fichier existant malgré le paramètre NoClobber :

 

répertoire >! déroute

 

Redirections multiples

 

La redirection est entièrement emboîtable. Par exemple, vous pouvez appeler un fichier de commandes et rediriger toute sa sortie vers un fichier ou un périphérique. La redirection de sortie sur une commande dans le fichier batch ne prendra effet que pour cette commande ; lorsque la commande est terminée, la sortie reviendra au fichier de sortie redirigé ou au périphérique utilisé pour le fichier de commandes dans son ensemble.

 

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 de fichier comme une commande, sans commande réelle avant le > personnage. Si vous avez activé Protéger le fichier de sortie redirigé, utilisation >!nom de fichier.

 

Redirection par handle

 

En plus des options de redirection ci-dessus, TCC prend également en charge le CMD syntaxe:

 

n>filetPoignée de redirection n au fichier nommé
n>&mPoignée de redirection n au même endroit que la poignée m

 

Mise en garde: Vous ne pouvez mettre aucun espace entre les n les nouveautés >, ou entre le >, &et m sous la deuxième forme. Les valeurs de n et m doit être constitué de chiffres décimaux simples et représenter des descripteurs de fichiers. Windows définit 0, 1et 2 comme indiqué dans le tableau ci-dessous.

 

Handle

Affectation

0

entrée standard

1

sortie standard

2

erreur standard

 

Le n>filet la syntaxe redirige la sortie du handle n à filet. Vous pouvez utiliser ce formulaire pour rediriger deux handles vers des endroits différents. Par exemple:

 

rép > fichier de sortie 2 > fichier d'erreur

 

envoie la sortie normale à un fichier appelé FICHIERS et tous les messages d'erreur dans un fichier appelé FICHIER ERREUR.

 

Le n>&m poignée de redirection de syntaxe n vers la même destination que le handle précédemment attribué m. Par exemple, pour envoyer l'erreur standard au même fichier comme sortie standard, vous pouvez utiliser cette commande :

 

rép > fichier de sortie 2>&1

 

Notez que vous pouvez effectuer les mêmes opérations en utilisant les fonctionnalités de redirection standard. Les deux exemples ci-dessus pourraient s’écrire

 

rép > fichier de sortie >&> fichier d'erreur

 

et

 

répertoire >& fichier de sortie

 

Redirection « ici-document »

 

Partout où la redirection d’entrée est prise en charge, vous pouvez utiliser une approche « ici-document » de type Linux. La syntaxe est :

 

Danse << mot

 

Le fichier batch actuel est lu jusqu'à la prochaine occurrence de mot, et le texte résultant devient une entrée standard pour Danse. Par exemple:

 

c:\test\program.exe << endinput

entrée 1

entrée 2

entrée 3

entrée de fin

echo C'est la ligne suivante après "program.exe"

 

Particularités de « ici document » :

 

Si la << est suivi d'un trait d'union (-), l'espace blanc au début des lignes suivantes sera supprimé avant de les transmettre à Danse (c'est-à-dire qu'ils seront effectivement justifiés à gauche).

 

L'analyseur effectuera une expansion variable sur chaque ligne, à moins que le mot suivant << est entouré de guillemets doubles.

 

Redirection "ici-chaîne"

 

La « chaîne ici » vous permet d'envoyer du texte de chaîne directement à l'entrée d'un programme. La syntaxe est :

 

programme <<< chaîne

 

Ceci est similaire à l'utilisation PILE DE CLÉS, mais plus facile à saisir pour la saisie de texte. (Si vous devez envoyer des clés spéciales ou insérer des attentes, vous devrez utiliser KEYSTACK.) Par exemple, pour envoyer une chaîne à l'entrée standard du programme :

 

c:\test\program.exe <<< Ceci est un texte d'entrée.