TextEncoder

Batch Text Encoder

Con la versión del programa TextEncoder Pro CL puede cambiar la codificación y el salto de línea utilizado de los archivos de texto a través de la línea de comandos. Esto hace posible controlar el TextEncoder a través de un script. En esta página, nos gustaría presentarle el tema y mostrarle algunos ejemplos de cómo usar el TextEncoder para editar y convertir archivos individuales o el contenido de carpetas completas. Además, al final de esta página, encontrará una descripción general de todos los parámetros que puede usar.

Convertir Archivos individuales o múltiples

Comencemos con un ejemplo simple. Nos gustaría cambiar la codificación de un solo archivo a UTF-8. Para ello pasamos los siguientes parámetros:

TextEncoder.exe -cl C:\test.txt enc=utf8

Primero ve el parámetro -cl, que significa "command line" (línea de comando). Este parámetro controla si el TextEncoder se inicia con una interfaz gráfica de usuario o en modo de línea de comandos sin una interfaz gráfica de usuario. Siempre usamos este parámetro si queremos controlar el TextEncoder a través de la línea de comandos. Si omitimos este parámetro, el TextEncoder se inicia normalmente con una ventana. Como el siguiente parámetro, pasamos la ruta al archivo que queremos editar. Por último pasamos enc=utf8. Esto indica que queremos convertir a la codificación UTF-8. Al final de esta página encontrará una lista de todas las codificaciones que podemos entregar aquí. Este comando convierte el archivo C:\test.txt al formato UTF-8.

Del mismo modo, controlamos el cambio del tipo de salto de línea. El siguiente ejemplo cambia el salto de línea del archivo C:\test.txt a CR LF (Windows).

TextEncoder.exe -cl C:\test.txt lb=crlf

A continuación, queremos especificar explícitamente que la Marca de orden de bytes (Byte Order Mark, bom) está escrita en el archivo. Lo hacemos con el parámetro "bom":

TextEncoder.exe -cl C:\test.txt enc=utf8 bom=1

El parámetro "bom" puede tomar los valores "keep", "0" o "1". Con "1" la marca de orden de bytes siempre se escribe en el archivo, con "0" nunca. Con "keep", se adopta el estado del archivo original (si es posible). En otras palabras, si el archivo original tiene una marca de orden de bytes, también se escribe una marca de orden de bytes en el archivo. Si no, no.

Hasta ahora siempre hemos sobrescrito el archivo C:\test.txt. Ahora queremos guardar el archivo convertido como un nuevo archivo. Para ello utilizamos el parámetro "save":

TextEncoder.exe -cl C:\test.txt enc=latin1 save=C:\nuevo.txt

Aquí cambiamos la codificación del archivo C:\test.txt a Latin 1 (ISO 8859-1) y guardamos el archivo como C:\nuevo.txt. El archivo C:\test.txt permanece sin cambios.

TextEncoder.exe -cl C:\test1.txt C:\test2.txt enc=utf16le

Por supuesto también podemos editar varios archivos al mismo tiempo. Por ejemplo, en este ejemplo, convertiremos los archivos C:\test1.txt y C:\test2.txt al formato UTF16-LE. Puede especificar tantos archivos como desee.

Convertir contenidos de Carpetas

Además de especificar archivos individuales, también puede pasar la ruta a una carpeta para editar su contenido. La sintaxis es la misma que la edición de archivos:

TextEncoder.exe -cl C:\carpeta enc=utf8

Este comando convierte todos los archivos de la carpeta C:\carpeta al formato UTF-8. Si no desea sobrescribir el archivo, puede usar uno de los parámetros save-folder, save-name o save-ext para cambiar la carpeta, el nombre de archivo o la extensión de archivo de los archivos editados, para que los archivos editados se guarden como nuevos archivos.

TextEncoder.exe -cl C:\carpeta enc=utf8 save-folder=C:\nuevacarpeta

En este ejemplo, convertimos todos los archivos de la carpeta C:\carpeta al formato UTF-8 y guardamos el resultado en la carpeta C:\nuevacarpeta. Los archivos originales se mantienen sin cambios.

TextEncoder.exe -cl C:\carpeta enc=utf8 save-folder=C:\nuevo save-name=%%jjjj%%-%%mm%%-%%tt%

En este ejemplo, queremos cambiar no solo la carpeta sino también el nombre del archivo. Aquí guardamos los archivos de la carpeta C:\carpeta en formato UTF-8 en la nueva carpeta C:\nuevacarpeta y cambiamos el nombre del archivo a la fecha actual. Esto es lo que significan los marcadores de posición usados en el parámetro "save-name". Dado que no hemos definido una nueva extensión de archivo con el parámetro "save-ext", se adopta la extensión del archivo original respectivo.

En caso de que no queramos convertir todos los archivos de la carpeta, podemos pasar filtros utilizando parámetros. Por ejemplo, para editar solo archivos de una determinada extensión de archivo:

TextEncoder.exe -cl C:\carpeta enc=utf8 filter-ext=txt

Aquí pasamos el parámetro "filter-ext" con el valor "txt". Esto significa que solo queremos editar archivos con la extensión TXT. Si hay archivos con otros finales en la misma carpeta, se descartarán. Varias extensiones de archivo se pueden especificar de la siguiente manera:

TextEncoder.exe -cl C:\carpeta enc=utf8 filter-ext=txt-htm

Este filtro garantiza que solo los archivos con las extensiones TXT o HTM se conviertan desde la carpeta C:\carpeta. Puede encontrar filtros adicionales y opciones de búsqueda en la parte inferior de esta página en la lista de todos los parámetros disponibles.

TextEncoder.exe -cl C:\carpeta enc=utf8 search-subdirs=0

Además, puede usar el parámetro "search-subdirs" para especificar si solo deben editarse los archivos que están directamente en el primer nivel en la carpeta especificada, o si también deben incluirse todas las subcarpetas de la carpeta especificada. En este ejemplo, especificamos search-subdirs=0. El resultado es que los archivos que están en subcarpetas no se procesan. Si omite este parámetro o pasa search-subdirs=1, también se procesan todos los archivos de todas las subcarpetas. En el ejemplo, por ejemplo, también los archivos de una carpeta como C:\carpeta\carpeta1\carpeta2.

TextEncoder.exe -cl C:\carpeta enc=utf8 save-folder=C:\nuevo keep-subdirs=1

Cuando se convierten todos los archivos de una carpeta que contiene subcarpetas y los archivos deben almacenarse en otra carpeta definida por el parámetro save-folder, la pregunta es cómo se deben tratar los archivos de las subcarpetas. Esto se puede controlar a través del parámetro keep-subdirs. Con keep-subdirs=1, la estructura de las subcarpetas original permanece y los archivos convertidos se almacenan en subcarpetas correspondientes dentro de la nueva carpeta. Aparte de eso, con keep-subdirs=0, la estructura de las subcarpetas se ignora y todos los archivos se almacenan directamente en la nueva carpeta sin subcarpetas. Si omitimos el parámetro keep-subdirs, la estructura de las carpetas se ignora (corresponde a keep-subdirs=0).

Leer Archivos usando un Formato específico

Normalmente, el TextEncoder adivina la codificación y el salto de línea de los archivos existentes y los lee sobre esta base. Por supuesto, también puede imponer una codificación específica o un tipo de salto de línea específica al leer los archivos. Hace esto con los parámetros enc-read y lb-read.

TextEncoder.exe -cl C:\archivo.txt enc-read=utf8 lb-read=lf

Aquí exigimos que el archivo se lea en formato UTF-8 con el salto de línea LF (Unix, Linux, macOS) y se interprete en consecuencia. Si omite uno de los dos parámetros o ambos parámetros, se utiliza el valor enc-read=auto respectivamente lb-read=auto. Esto significa que los archivos se leen e interpretan debido al reconocimiento automático de la codificación y el salto de línea.

Caracteres personalizados para las Salidas de Línea

Además de las constantes utilizadas anteriormente para tipos de saltos de línea comunes, como CRLF o LF, también puede usar cualquier caracteres personalizados definidos por el usuario para un salto de línea. Estos caracteres se pueden definir tanto, en forma de puntos de código o en forma de texto.

En el siguiente ejemplo, leemos un archivo con la salida de línea LF y queremos guardar el archivo con el salto de línea CR LF. En lugar de usar las constantes, LF y CRLF, usamos la escritura por medio de puntos de código, por lo que #0A en lugar de LF y #0D#0A en lugar de CRLF. Tenemos que escribir "customcp-" delante de nuestras definiciones de puntos de código, que es el prefijo en el TextEncoder para interpretar el siguiente texto como puntos de código:

TextEncoder.exe -cl C:\test.txt lb-read=customcp-#0A lb=customcp-#0D#0A

El resultado de la conversión con esta escritura es, por supuesto, idéntica al resultado que obtenemos con lb-read=lf lb=crlf. La siguiente llamada también nos devuelve el mismo resultado de nuevo:

TextEncoder.exe -cl C:\test.txt lb-read=customcp-10 lb=customcp-U+000DU+000A

Esta vez hemos definido la línea de rotura LF no hexadecimal (#0A) sino decimal (#0A = 10). La tercera forma de definir los puntos de código para el TextEncoder es la forma U+X, ya que hemos definido CR LF aquí.

Aunque solo hemos escrito tipos típicos de salto de línea como puntos de código en estos ejemplos, por supuesto, también podemos definir cualquier carácter de rotura de línea no étácteos en forma de uno o más puntos de código y usarlo para leer o escribir en el TextEncoder.

Si bien podemos definir puntos de código con el prefijo "customcp-", podemos definir cualquier carácter o texto como una salida de línea personalizada con el prefijo "customstr-" directamente. Un ejemplo de esta es la siguiente llamada:

TextEncoder.exe -cl C:\test.txt lb-read=customstr-a lb=crlf

Con esta llamada, reemplazamos cualquier ocurrencia de la letra "a" en el archivo test.txt con CR LF (Windows). Así que interpretamos la letra "a" como un carácter para un salto de línea.

Internamente, customcp- y customstr, están funcionando de la misma manera, la diferencia consiste exclusivamente en el lado del usuario en la escritura y el tipo de definición de caracteres. Sin embargo, es recomendable usar "customstr-" solo para caracteres legibles, como "a" de nuestro ejemplo, mientras que los caracteres "invisibles" pueden ser más fácilmente definidos a través de puntos de código y el uso de "customcp-".

Convertir Archivos con longitud de Línea fija

Todos los ejemplos anteriores trabajan con caracteres como CR o LF, que se interpretan como una nueva línea. Además, con el TextEncoder, también es posible procesar las salidas de línea sin caracteres. Estamos hablando de líneas definidas por un número fijo de caracteres.

En el siguiente ejemplo, tenemos un archivo que no contiene un signo para una salida de línea. En su lugar, sabemos que 15 caracteres pertenecen a una línea y una nueva línea siempre comienza después de 15 caracteres. Queremos convertir este archivo y, en consecuencia, inserte un carácter para una salida de línea (CR LF) todos los 15 caracteres:

TextEncoder.exe -cl C:\test.txt lb-read=fixedlength-15 lb=crlf

Utilizamos el prefijo "fixedlength-" para la lectura (lb-read) y agregamos a este prefijo nuestra longitud de línea deseada (aquí 15). Como queremos guardar el archivo con el tipo de salto de línea CR LF, usamos "lb=crlf" como un parámetro adicional.

Por supuesto, también podemos ir al revés:

TextEncoder.exe -cl C:\test.txt lb=nochar

Con esta llamada, eliminamos todos los saltos de línea del archivo test.txt. Esta vez, solo usamos el parámetro "lb" (para guardar) con el valor "nochar" significado sin carácter. El parámetro "lb-read" para la lectura se omite esta vez, por lo que el TextEncoder intentará detectar automáticamente el tipo de rotura de línea utilizado en el archivo.

Salida de Línea en varios Caracteres

Normalmente, el carácter utilizado para una nueva línea es único dentro de un archivo. Esto puede ser, por ejemplo, el carácter LF como de costumbre en sistemas de macOS, Linux y Unix o CR LF desde Windows. Pero, ¿cómo podemos lidiar con los archivos en los que se mezclan los diferentes tipos de rupturas de línea? Por ejemplo, debido a que varios archivos se juntaron provenientes de diferentes sistemas sin ajustar primero sus salidas de línea?

Una solución es reparar el tipo de línea del archivo. Esto se puede hacer con el TextEncoder con su capacidad para leer las salidas de línea en varios caracteres diferentes al mismo tiempo. Se puede hacer una llamada de esta manera:

TextEncoder.exe -cl C:\test.txt lb-read=customcps-10,13 lb=crlf

Utilizamos el prefijo "customcps-" detrás de los cuales podemos definir cualquier número de puntos de código. Al leer el archivo, se realiza una pausa de línea en cada uno de estos puntos de código enumerados. En nuestro ejemplo, queremos dividir el archivo en los dos puntos de código 10 y 13. Entonces podemos usar cualquier otro tipo de salto de línea para guardar. En nuestro ejemplo, tomamos CR LF.

Además de una definición de puntos de código, también podemos definir nuestros caracteres para una salida de línea a través del texto. Para esto, tomamos el prefijo "customstr-" en lugar de "customcps-":

TextEncoder.exe -cl C:\test.txt lb-read=customstrs-a,b,c lb=crlf

En este ejemplo, queremos considerar los caracteres a, b y c como signos de rotura de línea y luego guardar el archivo con el nuevo tipo de rotura de línea CR LF. Por lo tanto, simplemente reemplazamos cualquier ocurrencia de las letras a, b o c con las salidas de línea de Windows.

Resumen de todos los Parámetros disponibles

La siguiente tabla enumera todos los parámetros disponibles que puede usar en el TextEncoder. Algunos de los parámetros que ya hemos presentado en los ejemplos de esta página.

ParámetroValoresDefectoDescripción
[Archivos]cualquier ruta(s) de archivo
-Ruta al archivo a convertir. Puede especificar varios archivos en secuencia para convertir varios archivos al mismo tiempo.
[Carpetas]cualquier ruta(s) de carpeta
-Ruta a una carpeta cuyos contenidos deben ser convertidos. Para evitar convertir todos los archivos de la carpeta, puede usar los parámetros search-subdirs, filter-ext, filter-name, filter-name-matchcase, filter-name-regex, filter-hiddenfiles y filter-onlytextfiles para limitar su búsqueda. Se pueden especificar varias carpetas consecutivamente para convertir simultáneamente el contenido de varias carpetas.
lbkeep, system, crlf, lf, cr, nl, ff, nel, ls, ps, vt, tab, nochar, customstr-x, customcp-x
keepTipo de salto de línea para el archivo convertido. "keep" conserva el tipo de salto de línea del archivo original, de lo contrario, el tipo especificado. El valor "system" corresponde al tipo de salto de línea estándar del sistema operativo en el que se está ejecutando el TextEncoder actualmente. Así, por ejemplo, crlf para Windows. El constante nochar significa sin carácter. Puede usarlo para eliminar todos los caracteres de rotura de línea de un archivo. Con customstr- y customcp-, los caracteres personalizados pueden definirse como caracteres de rotura de línea a través de texto o puntos de código (la x significa el texto o punto de código definido por el usuario). Aquí se puede encontrar una explicación y ejemplos. Una descripción general de los diferentes tipos de saltos de línea se puede encontrar aquí.
lb-readauto, system, crlf, lf, cr, nl, ff, nel, ls, ps, vt, tab, fixedlength-x, customstr-x, customstrs-x, customcp-x, customcps-xautoSalto de línea con el que se lee el archivo. Si este parámetro no se especifica o se especifica "auto", se intenta detectar automáticamente el salto de línea. El valor "system" corresponde al tipo de salto de línea estándar del sistema operativo en el que se está ejecutando el TextEncoder actualmente. Así, por ejemplo, crlf para Windows. Con fixedlength-, se puede leer un texto con longitud de línea fija (por ejemplo, fixedlength-70 para 70 caracteres por línea). Aquí se puede encontrar una explicación y ejemplos. Con customstr- y customcp-, los caracteres personalizados para una rotura de línea se pueden definir a través de texto o punto de código para la lectura (la x significa el texto o punto de código definido por el usuario). Aquí se puede encontrar una explicación y ejemplos. Si tiene archivos con tipos de rupturas de línea mixta, puede usar customstrs- y customcps-. Esto le permite definir múltiples salidas de línea personalizadas separadas por comas a través de texto o puntos de código, por ejemplo, customcps-13,10. Aquí se puede encontrar una explicación y ejemplos de la solicitud.
enckeep, ascii, latin1, latin2, win-ansi, win-1250, win-1251, win-1252, win-1253, utf7, utf8, utf16le, utf16be, utf32le o utf32be
keepCodificación para el archivo convertido. "keep" utiliza la codificación del archivo original, de lo contrario, la codificación especificada. La codificación "win-ansi" depende de la localización de su versión de Windows. Se utilizará la página de códigos de Windows que coincida con la versión de idioma de Windows. Una descripción general de todos los codificaciónes disponibles se puede encontrar aquí.
enc-readauto, ascii, latin1, latin2, win-ansi, win-1250, win-1251, win-1252, win-1253, utf7, utf8, utf16le, utf16be, utf32le o utf32beautoCodificación con la que se lee el archivo. Si este parámetro no se especifica, se intenta detectar automáticamente la codificación. La codificación "win-ansi" depende de la localización de su versión de Windows. Se utilizará la página de códigos de Windows que coincida con la versión de idioma de Windows.
bom0, 1 o  keep
keep¿Debe escribirse una marca de orden de byte (byte order mark) en el archivo? 0 para nunca, 1 para siempre, "keep" para como en el archivo original.
saveRuta de cualquier archivo
-Con este parámetro puede guardar el archivo convertido explícitamente con un nombre de archivo que se puede seleccionar libremente. Por ejemplo, especifique save=C:\Carpeta\Archivo.txt para guardar el archivo convertido como C:\Carpeta\Archivo.txt. Si solo desea guardar el archivo convertido en una carpeta diferente manteniendo el nombre y la extensión del archivo, utilice el parámetro save-folder y omita el parámetro save. Además, los parámetros save-name para el nombre y save-ext para la extensión de archivo pueden usarse de la misma manera y combinarse entre sí. Si no especifica ninguno de los parámetros save, save-folder, save-name o save-ext, se sobrescribirá el archivo original.
save-folderkeep o cualquier texto
keepCarpeta en la que se guarda el archivo convertido. Si no especifica este parámetro o si llama a este parámetro con el valor "keep", el archivo se guarda en la carpeta en la que se encuentra el archivo original. Este parámetro se puede combinar con los parámetros save-name y save-ext. Cada uno de estos parámetros es opcional, lo que le permite definir de forma independiente la carpeta, el nombre y la extensión. Si desea guardar el archivo convertido con un nombre de archivo explícito con ruta, nombre y extensión, utilice el parámetro save. Si no especifica ninguno de los parámetros save, save-folder, save-name o save-ext, se sobrescribirá el archivo original. Con el parámetro keep-subdirs, puede controlar cómo lidiar con las subcarpetas dentro de la carpeta.
save-namekeep o cualquier texto
keepNombre sin carpeta y extensión de archivo, con el que se guarda el archivo convertido. Si no especifica este parámetro o si utiliza este parámetro con el valor "keep", el archivo recibe el mismo nombre que el archivo original. Este parámetro se puede combinar con los parámetros save-folder y save-ext. Cada uno de estos parámetros es opcional, lo que le permite definir de forma independiente la carpeta, el nombre y la extensión. Si desea guardar el archivo convertido con un nombre de archivo explícito con ruta, nombre y extensión, utilice el parámetro save. Si no especifica ninguno de los parámetros save, save-folder, save-name o save-ext, se sobrescribirá el archivo original.
save-extkeep o cualquier texto
keepExtensión de archivo con la que se guarda el archivo convertido. Si no especifica este parámetro o si usa este parámetro con el valor "keep", el archivo convertido recibe la extensión de archivo que también tenía el archivo original. Este parámetro se puede combinar con los parámetros save-folder y save-name. Cada uno de estos parámetros es opcional, lo que le permite definir de forma independiente la carpeta, el nombre y la extensión. Si desea guardar el archivo convertido con un nombre de archivo explícito con ruta, nombre y extensión, utilice el parámetro save. Si no especifica ninguno de los parámetros save, save-folder, save-name o save-ext, se sobrescribirá el archivo original.
search-subdirs0 o 11¿Deben buscarse las subcarpetas al editar una carpeta? 0 para no, 1 para si. Un valor de 0 edita solo los archivos que están en el primer nivel de la carpeta.
keep-subdirs0 o 10Este parámetro controla si la estructura de las carpetas de una carpeta original debe mantenerse en una nueva carpeta o no. Ejemplo de uso: se pasa una carpeta, se debe convertir su contenido. Dentro de esta carpeta hay una o más subcarpetas con un número arbitrario de niveles. Además, los archivos deben almacenarse en una nueva u otra carpeta (definida a través de parámetro save-folder). Con keep-subdirs=1, los archivos se almacenan en la nueva carpeta en la misma estructura de carpetas, ya que se almacenaron dentro de la carpeta original. Con keep-subdirs=0, la estructura de las carpetas de la carpeta original se ignora y todos los archivos se almacenan directamente en la carpeta definida para el almacenamiento.

Ejemplo: El archivo C:\carpeta\subcarpeta\archivo.txt se convierte.
Caso A: Con "TextEncoder.exe -cl C:\carpeta enc=utf8 save-folder=C:\nuevo keep-subdirs=0" el nuevo archivo se almacena en "C:\nuevo\archivo.txt".
Caso B: Con "TextEncoder.exe -cl C:\carpeta enc=utf8 save-folder=C:\nuevo keep-subdirs=1" el nuevo archivo se almacena en "C:\nuevo\subcarpeta\archivo.txt".
filter-extcualquier texto-Si solo desea editar archivos con una extensión específica, puede ingresar esta(s) extensión(es) aquí. Por ejemplo, filter-ext=txt para editar solo archivos con la extensión TXT. Las terminaciones múltiples se pueden separar con un guión. Por ejemplo, filter-ext=php-htm-html para editar solo archivos con las extensiones PHP, HTM o HTML. Si omite este parámetro o lo deja vacío, se considerarán los archivos con todas las extensiones de archivo.
filter-namecualquier texto
-Si solo desea editar archivos con un nombre específico, puede ingresar un nombre aquí. Se procesan todos los archivos que contienen los caracteres especificados con "filter-name". Con filter-name=ab, por ejemplo, archivos como abc.txt o xab.txt. Si omite este parámetro o lo deja vacío, se tendrán en cuenta los archivos con todos los nombres.
filter-name-matchcase0 o 10¿Debería interpretarse el texto especificado con el parámetro "filter-name" de acuerdo con su escritura en mayúsculas y minúsculas? 0 para no, 1 para si. Si es 1, el texto en el nombre del archivo debe ser el mismo en el mismo caso. Si es 0 se busca sin distinción de mayúsculas y minúsculas.
filter-name-regex0 o 10Si el filtro de búsqueda especificado con "filter-name" debe interpretarse como una expresión regular, utilizar 1. Si solo desea buscar el texto especificado, utilizar 0.
filter-hiddenfiles0 o 10¿Desea editar archivos ocultos al convertir una carpeta? Un valor de 0 deja todos los archivos ocultos sin tratar, un valor de 1 también maneja archivos ocultos.
filter-onlytextfiles0 o 11¿Desea editar solo archivos de texto al editar una carpeta? 0 para no, 1 para si. En caso 1, cada archivo se comprueba antes de convertirse para ver si es un archivo binario y, si es así, no se realiza el procesamiento.
openfile0 o 10¿Debería abrirse el archivo convertido después de editarlo? openfile=1 abrirá el archivo recién creado.
delfile0 o 10¿Debería eliminarse el archivo original después de la conversión? delfile=1 borra el archivo original. Esta opción solo es útil si los archivos convertidos deben guardarse con un nombre diferente o en una ubicación diferente a la del archivo original y los archivos originales no se deben conservar.

En principio, todos estos parámetros pueden combinarse entre sí y usarse juntos. Si no define un parámetro, el valor predeterminado especificado se usa para este parámetro (el - indica que este parámetro está vacío de manera predeterminada). En la columna "Valores" puede ver todos los valores que puede tener este parámetro.