Roscado es una forma especial de redirección, que utiliza una instancia adicional de TCC para cada instancia de la tubería especificado en la línea de comando.

 

Usted puede crear un tubo para enviar el salida estándar de un comando (comando 1) al entrada estándar de otro comando (comando 2), y opcionalmente también enviar el Error estándar también:

 

lo que se envía a la tubería

formato de comando

solo salida estándar

comando 1 | comando 2

fusionar salida estándar y error estándar

comando 1 |& comando 2

error estándar solamente

comando1 |&| comando2

 

Por ejemplo, para tomar la salida del ALIAS comando (que muestra una lista de sus alias y sus valores) y canalizarlo a la utilidad SORT externa para generar una lista ordenada, usaría el comando:

 

alias | clasificar

 

Para hacer lo mismo y luego canalizar la lista ordenada al interno VER comando para ver:

 

alias | ordenar | puntos de vista

 

Las TEE y Y Los comandos son "accesorios de tubería" que añaden más flexibilidad a las tuberías.

 

TCCLa salida de normalmente está en ANSI. Si desea redirigir la salida en Unicode, debe usar el /U opción de inicio in TCC, o el Salida Unicode opción en TCMD.INI.

 

Al igual que la redirección, las tuberías son totalmente encajables. Por ejemplo, puede invocar un archivo por lotes y enviar toda su salida a otro comando con una tubería. Una canalización en un comando dentro del archivo por lotes tendrá efecto solo para ese comando; cuando se complete el comando, la salida volverá a la canalización en uso para el archivo por lotes en su conjunto. También puede tener 2 o más canalizaciones funcionando simultáneamente si, por ejemplo, las canalizaciones se ejecutan en diferentes ventanas o procesos.

 

Procesamiento de cada línea recibida de una tubería

 

Para procesar cada línea de texto enviada por el lado izquierdo de una tubería en TCC, puede utilizar la siguiente sintaxis:

 

directorio | para %archivo en (@CON:) comando %archivo

 

Este ejemplo muestra cómo pasar cada línea de datos canalizados a un comando.

 

ADVERTENCIAS: TCC implementa tuberías iniciando un nuevo proceso para el programa receptor. Este proceso pasa por el procedimiento estándar de inicio del shell, incluida la ejecución del TCINICIO archivo, para CADA programa receptor. Todos los programas de envío y recepción se ejecutan simultáneamente; el programa emisor escribe en la tubería y el programa receptor lee en la tubería. Cuando el programa receptor encuentra una señal de fin de archivo, termina de leer y procesar los datos canalizados y finaliza. Cuando usas tuberías con TCC, asegúrese de considerar las posibles consecuencias del uso de un proceso separado para ejecutar el programa receptor, especialmente que no puede crear/modificar/eliminar variables de entorno del programa emisor y la inclusión de un comando para cambiar directorios en el TCINICIO El archivo puede hacer que el nuevo proceso se ejecute en un directorio diferente.. Cuando usa más de una tubería en un solo comando, p. el segundo ejemplo anterior con Anuncia, cada tubería agrega otra instancia de TCC. Si necesita ejecutar la tubería en el mismo contexto, utilice tuberías en proceso (ver más abajo).

 

Tuberías en proceso

 

Las canalizaciones en proceso funcionan como las canalizaciones de DOS de estilo antiguo, creando un archivo de salida temporal, redirigiendo STDOUT a ese archivo y luego redirigiendo el archivo temporal a STDIN del siguiente comando. La sintaxis es:

 

comando1 |! comando2

 

Esto es lo mismo que hacer:

 

comando1 > temp.dat y comando2 < temp.dat

 

pero es más fácil de escribir y leer.

 

La ventaja de las tuberías en proceso es que comando 2 se ejecutará en el mismo contexto que comando 1, por lo que puede hacer cosas como modificar variables de entorno sin descartarlas cuando comando 2 salidas. También existen algunas desventajas al utilizar este tipo de "pseudo-tubería": normalmente será más lento que una tubería verdadera; utilizará algo de espacio en disco para su archivo temporal; y comando 2 no se iniciará hasta comando 1 ha salido

 

Salida ANSI, Unicode y UTF-8

 

Puede cambiar el formato de salida enviada a una tubería. Estas opciones anularán las directivas UnicodeOutput y UTF8Output en TCMD.INI. Las opciones de salida canalizada también funcionan con tuberías en proceso (es decir, |!:u). Nota: estas opciones sólo funcionan para redirigir la salida desde TCC comandos internos y archivos por lotes.

 

|:aLa salida por tubería es ANSI
|:túLa salida canalizada es UTF16 Unicode
|:8 o |:u8La salida canalizada es UTF8