Título: . bat que une varios txt Publicado por: otrebo en 18 Marzo 2012, 18:33 pm 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. Título: Re: . bat que une varios txt Publicado por: Eleкtro en 18 Marzo 2012, 18:46 pm Código
PD: Deberías lere la ayuda de los comandos, Te servirá de ayuda. Código: Copy /? Salu2 Título: Re: . bat que une varios txt Publicado por: otrebo en 18 Marzo 2012, 20:06 pm 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 Título: Re: . bat que une varios txt Publicado por: Eleкtro en 18 Marzo 2012, 20:16 pm El comando sería así:
Código
(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
Título: Re: . bat que une varios txt Publicado por: otrebo en 18 Marzo 2012, 21:14 pm Gracias,
Tal como te describi, no me arrobaja el esperado total.txt, ahora si que lo arroja. Te agradezco, puedes cerrar el hilo Título: Re: . bat que une varios txt Publicado por: cassiel83 en 20 Marzo 2012, 17:44 pm 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. Título: Re: . bat que une varios txt Publicado por: Eleкtro en 20 Marzo 2012, 18:12 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
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. Título: Re: . bat que une varios txt Publicado por: cassiel83 en 20 Marzo 2012, 20:11 pm 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.
Título: Re: . bat que une varios txt Publicado por: cassiel83 en 21 Marzo 2012, 20:13 pm 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.
Título: Re: . bat que une varios txt Publicado por: Eleкtro en 21 Marzo 2012, 21:01 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 Título: Re: . bat que une varios txt Publicado por: elqueteconte en 7 Octubre 2015, 23:09 pm Saludos;
He heredado el siguiente script: copy /y blancos\*.TXT . copy CM.txt + C:\carp1\Emp1\20150908\CM.txt CM.txt copy GL.txt + C:\carp1\Emp1\20150908\GL.txt GL.txt copy IMP6000.txt + C:\carp1\Emp1\20150908\IMP6000.txt IMP6000.txt copy IMP6001.txt + C:\carp1\Emp1\20150908\IMP6001.txt IMP6001.txt copy IMP6002.txt + C:\carp1\Emp1\20150908\IMP6002.txt IMP6002.txt copy IMP6003.txt + C:\carp1\Emp1\20150908\IMP6003.txt IMP6003.txt copy CM.txt + C:\carp1\Emp1\20150909\CM.txt CM.txt copy GL.txt + C:\carp1\Emp1\20150909\GL.txt GL.txt copy IMP6000.txt + C:\carp1\Emp1\20150909\IMP6000.txt IMP6000.txt copy IMP6001.txt + C:\carp1\Emp1\20150909\IMP6001.txt IMP6001.txt copy IMP6002.txt + C:\carp1\Emp1\20150909\IMP6002.txt IMP6002.txt copy IMP6003.txt + C:\carp1\Emp1\20150909\IMP6003.txt IMP6003.txt copy CM.txt + C:\carp1\Emp1\20150910\CM.txt CM.txt copy GL.txt + C:\carp1\Emp1\20150910\GL.txt GL.txt copy IMP6000.txt + C:\carp1\Emp1\20150910\IMP6000.txt IMP6000.txt copy IMP6001.txt + C:\carp1\Emp1\20150910\IMP6001.txt IMP6001.txt copy IMP6002.txt + C:\carp1\Emp1\20150910\IMP6002.txt IMP6002.txt copy IMP6003.txt + C:\carp1\Emp1\20150910\IMP6003.txt IMP6003.txt copy CM.txt + C:\carp1\Emp1\20150911\CM.txt CM.txt copy GL.txt + C:\carp1\Emp1\20150911\GL.txt GL.txt copy IMP6000.txt + C:\carp1\Emp1\20150911\IMP6000.txt IMP6000.txt copy IMP6001.txt + C:\carp1\Emp1\20150911\IMP6001.txt IMP6001.txt copy IMP6002.txt + C:\carp1\Emp1\20150911\IMP6002.txt IMP6002.txt copy IMP6003.txt + C:\carp1\Emp1\20150911\IMP6003.txt IMP6003.txt copy CM.txt + C:\carp1\Emp1\20150912\CM.txt CM.txt copy GL.txt + C:\carp1\Emp1\20150912\GL.txt GL.txt copy IMP6000.txt + C:\carp1\Emp1\20150912\IMP6000.txt IMP6000.txt copy IMP6001.txt + C:\carp1\Emp1\20150912\IMP6001.txt IMP6001.txt copy IMP6002.txt + C:\carp1\Emp1\20150912\IMP6002.txt IMP6002.txt copy IMP6003.txt + C:\carp1\Emp1\20150912\IMP6003.txt IMP6003.txt Como pueden ver la variable "carp1"; "Emp1" son constantes pero la carpeta siguiente corresponde a los días del mes. La idea es como hago para que cuando ejecuto el script le pase por parámetro el nombre de la Empresa y haga un recorrido por las carpetas que y vaya haciendo la copia hasta que consiga la ultima carpeta. Desde ya mil gracias.... |