27 julio, 2024

Concatenando archivos

Tenía que combinar varios archivos en uno solo en Windows, y no tenia ganas de armar una rutina en el script por lo que recurrí a un viejo y fiel comando COPY

Rápidamente, para concatenar varios archivos en uno nuevo se puede usar el siguiente comando:


copy /Y archivo1.ext+archivo2.txt+archivoN.zzz archivo_Nuevo.txt

Donde:

/Y ⇒ lo uso para sobreescribir el destino si ya existe sin preguntar

+ ⇒ los uso para concatenar (juntar) varios archivos de origen


💡También se puede usar comodines (*.txt) para la entrada y evitar escribir cada uno💡

 

Tener en cuenta que coloca el contenido del archivo inmediatamente a continuación del otro, al hacerlo con archivos de texto sería:

archivo1.ext 

Hola Mundo


archivo2.txt

Feroz y Salvaje


archivoN.zzz

pero Pacífico

 

El archivo resultante va tener (archivo_Nuevo.txt)

Hola Mundo
Feroz y Salvaje
pero Pacífico

El texto que este a continuación o en la siguiente linea va depender si cada línea tiene al final el salto de línea (código de control)


Se puede combinar/concatenar porque es texto puro , por default usa el modificador /A, pero ...

si quiero combinar dos imágenes debo usar el modificador /B (archivo binario)


copy /B imagen1.png+imagen2.png+imagenN.zzz imagen_Nueva.png

Pero al visualizarlo veo una sola imagen ! 😕

Pues claro! 😏, los visualizadores de imágenes solo leen el primer archivo, del encabezado hasta el fin del archivo, no se esperan que haya mas archivos en el mismo. Si miramos el resultado en un editor hexadecimal vemos la cabecera del PNG en el medio:

Básicamente estamos camuflando un archivo dentro de otro, vieja técnica usada por algunos virus de antaño.

El método no es muy efectivo ya que podría ser evidente por su tamaño, veo una imagen de 80x80 píxeles con un archivo que tiene un tamaño de 10Mb algo no cuadra a simple vista.

Para el mundo Linux es mas versátil, pero análogamente sería:

cat file1 file2 file3 > merged_file

 

Referencia

https://learn.microsoft.com/es-es/windows-server/administration/windows-commands/copy

0 comments:

Publicar un comentario