Unir archivos y agregar el nombre de archivos a cada linea por MS-DOS

Iniciado por cialem, 18 Julio 2012, 15:02 PM

0 Miembros y 1 Visitante están viendo este tema.

cialem

Necesito unir 59.000 archivos que tienen una cantidad de lineas considerables, lo uni por medio de un comando MS-DOS "copy *.* lista.txt" corrido en la ruta donde se encuentraban los archivos y me une todos los archivos, pero necesita además que indique para cada linea de archivos el nombre de archivo al que pertenece, para despues cargarlo en access.  :huh:

Eleкtro

#1
Código (dos) [Seleccionar]
@Echo OFF

Set "TempFile=ALL.txt"

If exist "%TEMPFILE%" (Del /Q  "%TEMPFILE%")

For /R %%# in ("*.txt") Do (
For /F "tokens=*" %%X in ('Type "%%#"') Do (
Echo %%~nx#: %%X >> "%TEMPFILE%"
)
)

Exit


output:
archivo1.txt: linea1 archi1
archivo1.txt: linea2 archi1
archivo1.txt: linea3 archi1
archivo2.txt: linea1 archi2
archivo2.txt: linea2 archi2
archivo2.txt: linea3 archi2
archivo3.txt: linea1 archi3
archivo3.txt: linea2 archi3
archivo3.txt: linea3 archi3


Saludos.








cialem

Corri las sentencias que mandaste, me crea el arhivo all.txt, pero no me guarda la informacion de los archivos que tengo en esa direccion

Eleкtro

#3
Cita de: cialem en 18 Julio 2012, 15:46 PM
no me guarda la informacion de los archivos que tengo en esa direccion
No has especificado la extensión de tus archivos, Igual que no has dado ningún ejemplo de como debe quedar la lista final, pides mucho sin dar info a cambio.
Mi script trabaja sobre archivos .txt, solo tienes que cambiarle la extensión al code.
For /R %%# in ("*.*")

Si lo prefieres ejecutar desde la consola, hazlo así:
Código (dos) [Seleccionar]
@Echo off & For /R %# in ("*.*") Do (Echo %~nx# [OK!] & For /F "tokens=*" %X in ('Type "%#"') Do (Echo %~nx#: %X >> "_ALL.tmp"))

output:


Saludos.








cialem