. bat que une varios txt

Iniciado por otrebo, 18 Marzo 2012, 18:33 PM

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

otrebo

Hola amigos,

Mi duda es la siguiente: Ya en un hilo anterior habia comentado que tengo en el server un .bat "unir.bat" el cual me une varios archivos .txt y como resultado optengo el archivo total.txt

Algo como esto

10.txt
21.txt
31.txt
41.txt
51.txt
unir.bat

Donde mi archivo unir.bat contiene el siguiente comando:

@Echo OFF
PUSHD "%~DP0"
copy "*.txt" "total.txt"
POPD
Exit

El resultado que tengo en total.txt es:

linea1
linea2
linea3
linea4
linea5
...
lineax


Que debo hacer para que luego de la ultima linea no me coloque ese caracter especial que no pude pegar pero es un cuadro pequeño al final del todo.


Agradezco su gran ayuda.   Un saludo.

Eleкtro

Código (dos) [Seleccionar]
Copy /B "*.txt" "Total.txt"


PD: Deberías lere la ayuda de los comandos, Te servirá de ayuda.
Copy /?


Salu2








otrebo

Gracias EleKtro H@cker

No tenia idea de la utilidad de /B, tan solo que debo unirlos manteniendo un orden he puesto lo siguiente y ya no tengo el resultado esperado

@Echo OFF
PUSHD "%~DP0"
copy /b "1.txt + 2.txt + 3.txt + 4.txt + 5.txt + 6.txt" " total.txt"
Exit

Tienes idea de lo que tengo mal, he intentado sin comillas y sigo igual.

Un saludo

Eleкtro

El comando sería así:
Código (dos) [Seleccionar]
copy /b "1.txt" + "2.txt" + "3.txt" + "4.txt" + "5.txt" + "6.txt" "total.txt"

(No importa con o sin comillas, Mientras los nombres de archivo no contengan espacios en el nombre)

Pero no especificas cual es el problema con el resultado que obtienes...

Si lo que quieres es añadir un espacio para que no se "pegue" al final de la línea de cada texto, puedes hacer esto:

Código (dos) [Seleccionar]
Echo+ >tmp & Echo+ >>tmp
copy /b "1.txt" + tmp + "2.txt" + tmp + "3.txt" + tmp + "4.txt" + tmp + "5.txt" + tmp + "6.txt" "total.txt"
Del tmp >NUL








otrebo

Gracias,

Tal como te describi, no me arrobaja el esperado total.txt, ahora si que lo arroja.

Te agradezco, puedes cerrar el hilo

cassiel83

Hola a todos, el copy /b funciona para archivos .txt con formato ANSI pero cuando son UTF8 el símbolo del cuadrado sigue apareciendo en medio de la unión de los dos txt.
He intendado usando el Copy /A (ascii) pero tampoco funciona, alguna idea para solucionarlo usando archivos UTF8?
Gracias de antemano.

Eleкtro

#6
Cita de: cassiel83 en 20 Marzo 2012, 17:44 PM
copy /b funciona para formato ANSI pero cuando son UTF8 el símbolo del cuadrado sigue apareciendo

Hola cassiel83

Acabo de probar "Copy /B" con 3 archivos .txt con codificación utf-8 guardados desde el bloc de notas, y funciona a la perfección.

¿Lo has probado en Windows 7?

¿Estás seguro que el formato que estás usando es UTF-8?


EDITO: De todas formas si estás seguro que en tu caso por lo que séa no funciona, Puedes probar la utilidad COMBINE.exe Que también me ha funcionado.

http://www.gammadyne.com/cmdline.htm#combine

La manera de usarla es la siguiente:
Código (dos) [Seleccionar]
combine Test.txt "*.txt"

No tiene muchas opciones pero a mi no me han hecho falta
Citar
COMBINE [/a] [/lb] [/nolist] [/nologo] [/nosum] [/s] target file1 file2 ...

Switches:
/a   Do not overwrite the existing contents of the target file. Instead, append to the end of the target file.
/lb   Before a source file is added to the target file, a line-break will be added to the end of the target file if one is not already present.
/nolist   Do not list each file.
/nologo   Do not display the program banner.
/nosum   Do not display the operation summary.
/s   Recursively enter subdirectories.








cassiel83

Hola Elektro Hacker, gracias por contestar, estoy probando el comando en xp sp3, de hecho lo he vuelto a hacer con archivos pequeños que acabo de crear y los guardo en formato UTF8, el archivo resultante es tambien un UTF8 pero sigue el problema del simbolo cuadrado en la union de los archivos. Probare esta noche en casa ya que en la oficina no tenemos windows 7.

cassiel83

Hola nuevamente como habias dicho lo he probado en windows 7 y si que funciona, los archivos son UTF8 y el archivo resultante es tambien UTF8 parece ser que en windows xp no funciona.

Eleкtro

Cita de: cassiel83 en 21 Marzo 2012, 20:13 PM
parece ser que en windows xp no funciona.

No creo que haya solución en tu caso.
Si no tuvieras el SP3, Quizás actualizando al SP3 se actualize esa función interna de la CMD...

Saludos