Cómo concatenar el contenido de varios archivos planos en uno solo, pero que se incluyan los archivos de carpetas y subcarpetas.

Necesito crear un solo archivo TXT con el contenido de varios archivos TXT, sin embargo estos archivos se encuentran incluidos en carpetas y subcarpetas y no he encontrado la manera de hacerlo, a continuación relaciono la línea que coloqué en la consola de DOS pero sólo me funciona para los archivos que se encuentran en la carpeta <Pruebas_aportes_planos> y no las subcapetas que están incluidas ahí mismo:

F:\MÓNICA\Pruebas_aportes_planos>TYPE *.TXT > NUEVOARCHIVO.TXT

La carpeta "Pruebas_aportes_planos" tiene varias subcarpetas y en ellas están incluídos otros archivos de texto, ¿cómo hago para que me los tome todos y unifique el contenido en un solo archivo?

Les agradecería mucho la respúesta, dado que ya lo he hecho de muchas formas y no encuentro la respuesta.

2 Respuestas

Respuesta

Creo que una gran parte de lo que deseas hacer se realiza mediante los comandos "Copy" y "XCopy", pero no estoy seguro de que sea capaz de aglutinar o unir todo a la vez (archivos y carpetas) en un sólo archivo, puedes intentarlo

http://www.lawebdelprogramador.com/foros/Ms-Dos/1346688-Copiar_todos_los_archivos_txt_de_carpetas_y_subcarpetas.html 

http://www.lawebdelprogramador.com/foros/Basic/206930-Concatenar_archivos_de_Texto.html 

http://support.microsoft.com/kb/69575/es 

Quizás sea necesario crear un script o Batch para realizar una acción compeja que no se puede llevar a cabo con ningún comando simple de DOS. Puedes plantear tu consulta tambien en la página "LaWebDelProgramador", si aquí no recibes otra respuesta.

Si encuentro más información amplio este mensaje. Disculpa que no pueda contestar mejor.

Respuesta
1

En la línea de "Han ade" podrías crear un BAT con lo siguiente:

@echo off
del todotxt.txt
for /f %%i in ('dir /b /s *.txt') do (type %%i >> todotxt.txt)

Lo salvas con el nombre (por ejemplo) concat.bat y lo ejecutas desde la carpeta raíz de la rama que quieres concatenar.

En este ejemplo crearía un archivo de nombre TODOTXT.TXT en el que incluiría todo el contenido de todos los archivos de extensión TXT que existan en esa carpeta y en todas sus subcarpetas.

Si no es exactamente eso lo que quieres solo tienes que matizar lo que no te encaje y buscamos la solución exacta.

Ya nos dirás.

Buenos días, muchísimas gracias por tu aporte, eso es precisamente lo que busco, sin embargo se me ha presentado un problema y es que al momento de unificar el contenido de los archivos, no me conserva la información de cada línea ordenada, sino que por ejemplo me toma la información de una línea y me coloca seguida la otra, entonces me queda todo junto, cómo haría para que me quede la información de los archivos como están y no todo junto.

Gracias por la información que me puedas suministrar.

Lo que dices me resulta bastante chocante. Se me ocurre que tal vez los txt con los que tratas no tienen el final de línea típico de MSDOS sino el típico de Linux.

Te sugiero que hagas algunas pruebas con archivos creados por ti misma con cualquier editor (el "bloc de notas" por ejemplo) para ver si sigue ocurriendo lo mismo.

A no ser que te refieras, exclusivamente, a que la última línea de un archivo se une a la primera del siguiente. Y las demás líneas internas de los archivos estarían bien separadas. Si fuera este último el caso la solución podría ser usar este otro BAT:

@echo off
del todotxt.txt
for /f %%i in ('dir /b /s *.txt') do (type %%i >> todotxt.txt&echo. >> todotxt.txt)

Pero es fundamental diagnosticar correctamente el problema.

Ya me dirás.

GGG

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas