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) :
Considérations spéciales pour des commandes spécifiques
< nom de fichier | Pour obtenir une entrée à partir d’un fichier ou d’un périphérique plutôt que du clavier. |
é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.
>:un | La sortie redirigée (STDOUT et/ou STDERR) est ANSI (caractères 8 bits) |
>:tu | La sortie redirigée est UTF16 Unicode |
>:8 ou >:u8 | La sortie redirigée est UTF8 |
>>:un | La sortie redirigée ajoutée (STDOUT et/ou STDERR) est ANSI (caractères 8 bits) |
>>:tu | La sortie redirigée ajoutée est UTF16 Unicode |
>>:8 ou >>:u8 | La 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
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
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.
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.
En plus des options de redirection ci-dessus, TCC prend également en charge le CMD syntaxe:
n>filet | Poignée de redirection n au fichier nommé |
n>&m | Poigné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 et les >, 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, 1 et 2 comme indiqué dans le tableau ci-dessous.
Poignée |
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
Partout où la redirection d’entrée est prise en charge, vous pouvez utiliser une approche « ici-document » de type Linux. La syntaxe est :
Programme << mot
Le fichier batch actuel est lu jusqu'à la prochaine occurrence de mot, et le texte résultant devient une entrée standard pour Programme. 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 à Programme (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.
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.