Título: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 24 Enero 2009, 00:30 am Manipular y visualizar informacion de archivos externos. por Leo Gutiérrez.
Atención Cuando busquen ayuda, por favor dejar claramente una muestra de cómo está el archivo o lo que quieren extraer del archivo y como quieren que quede, para entendernos con más claridad. Tomaremos como ejemplo el siguiente texto : Perl es un lenguaje de programación diseñado por Larry Wall creado en 1987. Perl toma características del C, del lenguaje interpretado shell (sh), AWK, sed, Lisp y, en un grado inferior, de muchos otros lenguajes de programación. Estructuralmente, Perl está basado en un estilo de bloques como los del C o AWK, y fue ampliamente adoptado por su destreza en el procesado de texto y no tener ninguna de las limitaciones de los otros lenguajes de script. Que será TEXTO.TXT Volcar cierto texto a un archivo de texto : Código: echo Hola > file.txt Código: > Adios.txt echo "Mi texto." Código: @echo off Bash: Código
Código
Código
Código
Código
Mostrar el contenido de un archivo de texto : Código: type texto.txt Código: for /f "tokens=*" %%x in (texto.txt) do (echo %%x) Contar lineas de un archivo de texto (Lineas en blanco tambien) : Código: C:\>type texto.txt | find /v /c "" < texto.txt Contar lineas (Sin lineas en blanco) : Código: @echo off [/b] Obtener informacion del archivo de texto (tamaño, fecha, atributos, etc) : Código: @echo off Otra forma : Código: @echo off Contar caracteres de un archivo : Código: @echo off Contar palabras de un archivo de texto : Código: @ECHO OFF Crear archivos vacios (0 kb) : Manera brusca : Código: lksdfljskdfljksdf > file.txt Código: fsutil file createnew file.txt 0 Código: ver | find "kjflskdfjlsjkdf" > file.txt Código: C:\>copy con vacio.txt > nul Enumerar lineas de archivos : Lista lineas en blanco tambien. Código: @echo off Este no lista lineas en blanco : Código: @echo off Eliminar cierta linea de un archivo de texto : Código: @echo off Copiar el contenido de un archivo de texto a otro: Código: type texto.txt > texto2.txt Editar cierta linea de un archivo de texto : Código: @echo off Copiar cierta linea al final del mismo archivo de texto : Código: @echo off Código: echo 2,2,100,1c Mover la primera linea al final del archivo de texto : Código: @echo off Mover la primera linea a la segunda linea de un archivo : Código: @echo off Mover la segunda linea a la primera linea : Código: @echo off Mover la tercera linea a la primera : Código: @echo off Visualizar solo las primeras 10 lineas de un archivo : Código: @ECHO OFF Visualizar una linea en la que sabemos que existen ciertas palabras: Suponiendo que este es nuestro texto, y queremos visualizar todas las lineas que contengan "Perl" Código: Perl es un lenguaje de programación diseñado por Larry Wall creado en 1987. Código: type texto.txt | find /i "Perl" Contar las lineas que coincidan con cierta busqueda : Código: type texto.txt | find /i /c "Perl" Leer datos dentro de un txt, compararlos y dar un resultado... es posible? http://foro.portalhacker.net/index.php/topic,86703.new.html (http://foro.portalhacker.net/index.php/topic,86703.new.html) Remover lineas en blanco de un archivo de texto : Código: @echo off Otra manera, usando expresiones regulares con findstr Código: findstr /v "^$" file.txt $ : Fin de linea. /v : Solo muestra lo que no coincida con la expresion. Sustituir una columna en un archivo de texto : Supongamos que tenemos un archivo de texto con el contenido : Código: 123 234 345 456 567 678 789 890 Código: @echo off Contar la cantidad de archivos de texto en un directorio: Código: dir /b *.txt | find /c ".txt" Código: dir /b *.txt | findstr /n ".txt$" Intercambiar cierto palabra por otra : Supongamos que queremos cambiar todas las palabras que digan "Perl", por C : Código: @echo off Cambiar todo el texto de un archivo de texto a mayusculas : Código: @echo off Código: PERL ES UN LENGUAJE DE PROGRAMACI¾N DISE±ADO POR LARRY WALL CREADO EN 1987. Saber que lineas de un archivo de texto son las que estan vacias : Código: @echo off Cambiar todo el contenido de un archivo de texto a minusculas : Código: @echo off Salida : Código: perl es un lenguaje de programaci¥n dise▒ado por larry wall creado en 1987. Visualizar el contenido de un archivo de texto en una ventana : (http://r.i.elhacker.net/cache?url=http://mx.geocities.com/leorocko13/texto_en_ventana.JPG)Código: @echo off Requiere Nircmd.exe Listar un archivo de forma inversa : Código: P Y que no lo devuelva en esta forma : Código: 16: t Código: @echo off Código Agregar una palabra al principio y al final de una linea en un archivo de texto : Supongamos que tenemos el siguiente texto : Código: Leo Código: @echo off Código: Antes Leo Despues Listar solo las palabras que tengan 3 caracteres de longitud en un archivo de texto : Código: type texto.txt | findstr "^...$" Informacion sobre los archivos de texto : Código: assoc | find /i ".txt" Caso practico : [/size]Supongamos que tenemos un archivo de texto así : Código: laasd Start-of-data y End-of-data Código: @echo off Guardar las lineas de un archivo de texto en lineas independientes : [/b]Código: @echo off Meter la primera linea en una variable: Código Pedir número de línea al usuario y mostrarla por pantalla: Código: @echo off Caso práctico: http://foro.elhacker.net/programacion_general/ayuda_con_bat_leer_archico-t268569.0.html;msg1314595#new (http://foro.elhacker.net/programacion_general/ayuda_con_bat_leer_archico-t268569.0.html;msg1314595#new) Comparar dos archivos (file.txt y file2.txt) y mostrar el número de línea y la línea donde se da la diferencia. Código Ejemplo de uso: Código: C:\>type file* Ejecución: Código: C:\>code Buscar un archivo en todos los discos disponibles y eliminarlo: El siguiente código encuentra las unidades de disco disponibles en el sistema, en seguida busca el archivo a eliminar, en este caso yo lo llamé "archivoloco.txt" sólo para ilustrar.El archivo lo tengo en las siguientes rutas : Código: C:\>code Se trata de eliminarlo. Código Y eso fue todo, si volviera a buscar los archivos en los distintos discos, esto obtendría: Código: C:\>lala Saludos. Leer solo una parte de un fichero http://foro.elhacker.net/scripting/leer_solo_una_parte_de_un_fichero_de_texto_iquestcomo-t296151.0.html (http://foro.elhacker.net/scripting/leer_solo_una_parte_de_un_fichero_de_texto_iquestcomo-t296151.0.html) Añadir una línea al principio del archivo http://foro.elhacker.net/scripting/comandoopcion_msdos_insertar_linea_en_archivo_txt_solucionado-t289992.0.html (http://foro.elhacker.net/scripting/comandoopcion_msdos_insertar_linea_en_archivo_txt_solucionado-t289992.0.html) Modificar el valor de una columna http://foro.elhacker.net/scripting/ayudacon_modificacion_de_archivo_de_texto-t294900.0.html (http://foro.elhacker.net/scripting/ayudacon_modificacion_de_archivo_de_texto-t294900.0.html)http://foro.elhacker.net/scripting/modificar_archivos_de_texto_batch_perl-t293258.0.html (http://foro.elhacker.net/scripting/modificar_archivos_de_texto_batch_perl-t293258.0.html) Contar renglones de archivo http://foro.elhacker.net/scripting/contador_de_renglones_solucionado- (http://foro.elhacker.net/scripting/contador_de_renglones_solucionado-)t292853.0.htmlCrear varios txt a patir de otro http://foro.elhacker.net/scripting/batch_crear_varios_txt_a_partir_de_otro_txt_solucionado-t290418.0.html (http://foro.elhacker.net/scripting/batch_crear_varios_txt_a_partir_de_otro_txt_solucionado-t290418.0.html)Reportar archivos encontrados[/b]]Reportar archivos encontrados (http://[b) http://foro.elhacker.net/scripting/reporte_en_batch-t277835.0.html (http://foro.elhacker.net/scripting/reporte_en_batch-t277835.0.html) Quitar fin de linea http://foro.elhacker.net/scripting/ayuda_com_archivo_de_texto_por_favorsolucionado-t277953.0.html (http://foro.elhacker.net/scripting/ayuda_com_archivo_de_texto_por_favorsolucionado-t277953.0.html)Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: SmartGenius en 24 Enero 2009, 20:12 pm Muy bueno leonardo...Gracias por compartirlo :D
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: vagosoft en 7 Julio 2009, 00:35 am Excelente ;-)
... justo lo que buscaba ! :silbar: Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: FranciskoAsdf en 7 Julio 2009, 04:27 am gracias leonador, espero que me sirva para lo que quiero hacer con unos archivos de texto :D!!!!!
en muy buena hora posteaste la info :D!!! gracias de nuevo ^^*! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Yatch en 20 Julio 2009, 08:20 am Hola Buenas me gusto mucho este post pero tengo una duda si tengo un txt
con lel siguiente texto Código: 1234# Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 8 Agosto 2009, 06:36 am Aqui esta la solución:
Código
Salida: Código: C:\>code.bat Modifica el script a tu conveniencia. Aquí está la solución en PERL: Código
Código: leo@lein:~/Escritorio$ perl pl.pl file.txt Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: KamuiDNA en 13 Agosto 2009, 20:03 pm Hola buenos dias , tengo una duda, espero me puedan auxiliar, tengo el siguietne archivo es un TXT y tiene lo siguiente:
Código: TOA5 CR200Series CR2xx v06 WX-SI-06_test.C 18422 Public y deseo que me de la siguiente salida si es posible: 3.599 43.06523 23.57434 27.37795 18.57707 13.77606 34.56199 0 793.019 0 he intentado pero la verdad soy muy noob en cuanto a la programacion, espero puedan ayudarme, gracias de antemano. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 13 Agosto 2009, 20:35 pm Hola, en Batch podríamos hacer algo así.
Suponiendo que contamos con "file.txt", cuyo contenido es: Código: TOA5 CR200Series CR2xx v06 WX-SI-06_test.C 18422 Public Y solo queremos mostrar los números así: Código: 3.599 Código Salida: Código: C:\>code.bat Edit: He editado el código.[/code] Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: KamuiDNA en 13 Agosto 2009, 20:45 pm Gracias
En seguida lo pruebo y comento los resultados =D muchas gracias.!!!!! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: KamuiDNA en 13 Agosto 2009, 20:52 pm Ya nada mas me queda una duda, lo que deseo hacer es crear un archivo XML con los datos obtenidos en el programa que me ayudaron a hacer, es posible hacer esto desde batch , segun estaba viendo si es posible unicamente agrego el texto de mis etiquetas XML y guardo el archivo como XML,
La duda concreta que tengo es posible crear archivos con Batch en formato XML mediante el bloc de notas ? solo tengo esa duda, si es posible para buscar la informacion necesaria para no abusar de su ayuda =) Muchas gracias el programa si me dio la salida que esperaba ^^ Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 13 Agosto 2009, 21:09 pm Aunque ya hayas encontrado solución, de todos modos te contesto.
Es posible trabajar con XML, pero es algo engorroso, pero si vas a volcar la salida del script que acabamos de hacer a un XML, podrías hacerlo a lo simple, así: Editamos el script y lo dejamos asì: code.bat: Código
Luego desde otro script, llamemosle "dudas.bat": Código La salida de "my_xml.xml" sera esta: Código: C:\>type my_xml.xml Para trabajar con XML te recomiendo PERL. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: KamuiDNA en 13 Agosto 2009, 21:25 pm Muchas gracias Leo , si estoy viendo que es un poco laborioso crear los XML con batch, el unico detalle es que cada linea de datos seria una etiqueta la salida que busco es la siguiente:
Código:
Estaba viendo y para poder manipular cada dato tendria que asignarlo a una variable diferente para poderlo insertar en donde yo quisiera. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: KamuiDNA en 13 Agosto 2009, 23:46 pm Por fin me quedo el codigo como lo deseaba, estuve viendo los ejemplos que pusieron y ahi encontre las respuestas a mis preguntas , obvio con la ayuda de Leo que me auxilio sin el no podria haber terminado mi proyecto, adjunto el codigo por si a alguien le sirve:
Código: @echo off Aqui el segundo proceso para formatear los datos obtenidos en el primero en formato XML Código: @echo off Gracias por la ayuda =) espero a alguien le sirva. Se me olvidaba mencionar son dos procesos el primero llamado Code y el segundo se llama Proceso , el que yo ejecuto es el segundo y este a su vez llama al primero. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Yatch en 16 Agosto 2009, 07:09 am Código
Gracias men Ahora como imprimo las lineas que elimine? Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: ovpaez en 24 Agosto 2009, 18:37 pm Hola perfectoo el codigo me refiere al de cambiar una frase por otra.. pero quisiera q dentro de ese mismo script poder seguir ejecutando otras instrucciones pero con el goto:eof se cierra el archivo y no se ejecuta lo demas como haria para q se siguiera ejecutando el script?? :-\ :-[ :silbar:
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 25 Agosto 2009, 05:54 am Hola perfectoo el codigo me refiere al de cambiar una frase por otra.. pero quisiera q dentro de ese mismo script poder seguir ejecutando otras instrucciones pero con el goto:eof se cierra el archivo y no se ejecuta lo demas como haria para q se siguiera ejecutando el script?? :-\ :-[ :silbar: Hola, podrías poner el código que estás intentando.También pon un ejemplo del archivo de texto que estás usando. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: ovpaez en 26 Agosto 2009, 17:30 pm Código Despues del goto:eof no se sigue ejecutando la siguiente instruccion q sera reiniciar la maquina :( Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 27 Agosto 2009, 04:16 am No se ejecuta por que está despues del GOTO:EOF
Goto:EOF, significa "ir al final del archivo", es decir, sale del archivo por lotes. Prueba tu código así: Código Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: ovpaez en 27 Agosto 2009, 15:48 pm :-( no hac nada.. Ni reemplaza las palabras :( y mucho menos ejecuta la instrución.... Yo se lo que implica el goto: eof pero necesito que me permita seguir ejecutando instrucciones en el mismo script... help me!!
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 27 Agosto 2009, 17:30 pm Sí te ayudo, pero tu también a mi.
¿Qué palabras quieres reemplazar? ¿Cual es el contenido del archivo? Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: ovpaez en 28 Agosto 2009, 15:14 pm ok.. en el archivo de texto tengo la palabra usuario la cual se va a reemplazar dinamicamente con lo q traiga una variable... ya q plantilla.inf es mi archivo plano es una plantilla .. alli coloque usu en vez de la variable (pero es un ejemplo).. pero el codigo que te coloque hace el reemplazo de la variable perfectamente.. alli no tengo problemas.. pero necesito seguir ejecutando instrucciones.. pero primero necesito reemplazar ese archivo completamente y luego ejecutar ese archivo que estoy reemplazando ya que es una plantilla de politica se seguridad de windows... obvio todo dentro del mismo Script... Espero me haya sabido explicar...
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 1 Septiembre 2009, 17:23 pm ¿Y el contenido del archivo?
¿Como se yo donde debo reemplazar?... para eso es el contenido del archivo. Título: Acciones sobre archivos de texto. [Batch] Publicado por: ovpaez en 1 Septiembre 2009, 17:34 pm Código: [Unicode] Ese es el archivo a reemplazar.. y la palabra usuario es la q se va a reemplazar por usu como te puse el codigo anteriormente... pero despues de reemplazar... desde del eof se cierra y no ejecuta otra instruccion la solucion fue hacer dos .bat pero es demasiado ineficiente se q se puede hacer en el mismo script eso creo!!????? Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 2 Septiembre 2009, 05:12 am Mira, si es que he entendido lo que quieres hacer, pues es fácil.
Lo explicaré: Suponiendo que queremos cambiar una linea en el archivo "file.txt" (Esto lo modificas a tu gusto): Código: C:\>type "FILE.TXT" Ejecutamos este codigo: Código El codigo buscara la linea a editar y la cambiara por esto: Código: echo SeSecurityPrivilege = %contenido% Despues de ejecutar el codigo: C:\>code.bat Linea a editar : 11 Se editara por : SeSecurityPrivilege = Este es mi texto Código: [Unicode] Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: ovpaez en 2 Septiembre 2009, 18:04 pm Q pena :-[
Bueno Creo que entendi el codigo que me diste.. Peroooo si te diste cuenta en el archivo hay varios sitios donde se encuentra la palabra usuario... Y lo de reemplazar las palabras que quiero en el archivo de texto ya eso lo programe este es el codigo Código Ese codigo me reemplaza en el archivos todas las palabras usuario por usu, por el SID o variable que yo desee... Ese codigo va dentro de un bat donde se encuentran otras instrucciones... Código: if %1'==' (set p1=usuario Este es el bat Como ya te he dicho lo hace todo pero hasta el eof ya la siguientes instrucciones no las realiza... y necesito q se ejecute todo :( y todo se debe realizar en un Script para darle click y ya Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: ovpaez en 14 Septiembre 2009, 16:37 pm Se cerro el tema ??? :huh:
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 14 Septiembre 2009, 16:45 pm No, claro que no, solo se olvido tu duda.
Una pregunta, ¿aceptarías una solución en Perl?, por que no tengo acceso a sistemas con Windows. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: danibcn en 17 Octubre 2009, 16:11 pm Buenos tardes! :D
Me gustaría saber como ejecutar un bat o si hay un programa ya para modificar unos archivos de texto para eliminar ciertas palabras o lineas y que te lo guarde sin crear archivos a parte. por ejemplo tengo 100 txt y en todos quiero eliminar la palabra 'señor', reemplazar 'río' por 'lago' y cuando encuentre 'mar' eliminar desde 'mar' hasta la última linea o poder eliminar 6 ultimas lineas ;) Quien me puede echar una mano? Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: 0x0309 en 17 Octubre 2009, 16:38 pm mira, lo mejor es que utilices un programa que te haga el trabajo, y simplemente lo llamas con parámetros.
Hay uno muy bueno que se llama gsar.exe Código: http://gnuwin32.sourceforge.net/packages/gsar.htm Esta es su ayuda: Código: gsar, ver 1.21 -- Copyright (C) 1992-2008 Tormod Tjaberg & Hans Peter Verne Por ejemplo yo tengo el siguiente script para modificar rápidamente el boot.ini y activar dep para todos los programas y servicios. Esto normalmente, se hace yendo a Propiedades de pc ... y varios clics. En cambio yo automaticé el proceso. Activar dep para todos los programas es para aumentar la seguridad del equipo y que no te vulneren el sistema operativo con drivers. Código: @echo off Lo que hace mi código es reemplazar en el boot.ini: NoExecute=OptIn por NoExecute=OptOut Si es que existe el texto OptIn, sino devuelve errorlevel 1 que significa que no reemplazo nada porque no encontró el texto de entrada en el archivo. Yo te recomiendo este programa porque lo he probado y funciona bien. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: P3YOX en 28 Octubre 2009, 05:32 am BUENAS Soy bastante novato En esto del batch pero copiando y pagando analisando he conseguido resultados pero aún asi no me alcansa la suerte es por eso que necesito tu ayuda ^^ tengo un batch pesca un archivo de texto y lo ingresa a una variante y ese contenido lo transformo sin ningun problema EL PROBLEMA SE PRODUCE que no puedo encontrar un codigo queme tome todo el contenido del texto y me lo ingrese a mi variante solo conseguí uno que me tome la primera linea no todo el contenido del txt esto es lo que tengo
Citar echo. for /f %%a in (nuevo.txt) do ( set var=%%a goto next) :next echo %var:~0% set var=%var:~0% etc etc... Y tambien la posivilidad d eke me intregre varios archivos de texto con nombrs en comun ala variante como por ejemplo un *00.txt de antemanos gracias Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: dazofeifa en 26 Noviembre 2009, 21:59 pm Hola, no encontré algo parecido a lo que ocupo: requiero tomar un archivo de texto generado por un Backup y extraer de él una parte de texto de una las lineas, para luego tomar esa parte del texto para realizar otra acción, específicamente, es el nombre y ruta de los archivos que no se pudieron respaldar porque están en uso, para luego con este nombre de archivo y su ruta, llamar a otro tipo de backup que funciona aunque los archivos estén bloqueados. He logrado extraer del log la línea donde muestra el error (con for y findstr y asignando valor a variable) pero, no se cómo sacar de ella sólo lo que necesito. Eje:
La linea extraída es: Código: 2009/11/23 14:02:15 ERROR 33 (0x00000021) Copying File D:\Respaldo\out\res.pst Agradezco su ayuda. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 27 Noviembre 2009, 02:53 am ¿Qué código has utilizado para obtener esta línea?:
Código: 2009/11/23 14:02:15 ERROR 33 (0x00000021) Copying File D:\Respaldo\out\res.pst Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: flony en 27 Noviembre 2009, 13:25 pm dazofeifa deberias usar la extraccion de caracteres es
Citar nos permita obtener "trozos" de variables llamados subcadenas, existen varias formas para ello, siendo la principal: Código: Código: SET VariableResultado=%VariableOriginal:~m,n% Almacena en la VariableResult ado la subcadena que existen en la VariableOrigin al desde la posición "m" durante "n" caracteres. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 27 Noviembre 2009, 17:18 pm En cualquier caso yo buscaría la solución en Perl, mira este ejemplo:
Código
Tengo este archivo de texto similar a lo que tu obtienes: Código: 2009/11/23 14:02:15 ERROR 33 (0x00000021) Copying File D:\Respaldo\out\res.pst Y lo que obtengo al ejecutar el script: Código: leo@lein:~/Escritorio$ perl pl.pl Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: << Lucas, ¿quién más? >> en 3 Diciembre 2009, 20:17 pm Buena información, justo que me estaba olvidando un poco de todo esto. Me viene al pelo en un trabajo que debo presentar
Saludos Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: carlosguay en 8 Diciembre 2009, 21:32 pm Ya que mi problema es de archivos de texto, lo pongo aqui por no abrir otro hilo.
Primero decir que gracias a este hilo, e podido solucionar muchas de las cosas que estoy haciendo com mis archivos, gracias a leo por este aporte. Vereis tengo un problema que no se como solucionar con este archivo. Citar ad 55 6b b9 ad b6 ef ba 05 bc 36 9d 3c 86 43 38 bf cf 2f bf 4a 8b d7 09 4d 02 41 00 bc c7 88 fd f7 19 be aa 03 c6 18 ee b3 2c b9 b8 73 89 0b 72 06 57 8b c9 77 b3 79 c3 4f 5f db 60 e7 89 bd 55 06 90 79 12 f6 84 67 b1 84 c4 dc 22 5b 3a 7f 45 ac 5d 14 7e 1d c6 b9 65 8f 6c 37 36| .].~...e.l76 LINEA CON TEXTO Este archivo, en la parte de la derecha, lleva codigo acssi, que como veis no tengo problema en quitarlo, pero ya veis que en el penultimo renglon ya que la parte de hex no llega hasta el final, pues me deja parte del acssi. Os pondria de las formas que e intentado quitar la ultima linea y la parte de acsii, pero ya se me an olvidado, xd, siempre consigo esto. Citar ad 55 6b b9 ad b6 ef ba 05 bc 36 9d 3c 86 43 38 bf cf 2f bf 4a 8b d7 09 4d 02 41 00 bc c7 88 fd f7 19 be aa 03 c6 18 ee b3 2c b9 b8 73 89 0b 72 06 57 8b c9 77 b3 79 c3 4f 5f db 60 e7 89 bd 55 06 90 79 12 f6 84 67 b1 84 c4 dc 22 5b 3a 7f 45 Como veis no solo borro la ultima linea y la parte de acsii, sino que tambien borro la linea completa y se seguro que es por |, toma como ultima linea esa y eso es lo que pasa. Pues si alquien me puede ayudar, me haria un gran favor. saludos Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: pmabres en 14 Diciembre 2009, 14:41 pm Buenas... estoy en el trabajo intentando hacer un script para insertar datos desde archivos .dbf en una base de datos oracle... desde esos dbf puedo generar dos archivos .sql (uno que trae la creacion de tablas y otro que trae los inserts a hacer)... el problema que tengo ahora es que los insert deberian llevar el nombre de la tabla luego de la instruccion "insert into"... pero no hay nada. Casualmente el nombre de cada tabla es el nombre del archivo en donde se encuentra cada insert pero sin la extension .sql
mi pregunta es... como hago para poner el nombre del archivo mismo en el que esta cada insert, luego de cada instruccion insert into Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: pmabres en 14 Diciembre 2009, 17:12 pm bueno pude hacer lo que queria pero lo que no puedo hacer ahora es cambiar el texto que quiero reemplazar por el texto que quiero reemplazar + una variable "que toma el nombre del archivo"
aca esta mi codigo.... Código:
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: pmabres en 14 Diciembre 2009, 19:56 pm Código: @echo off el tema es que inserta dos veces los datos en el mismo file... no saben como peudo hacer para solucionar esto? ya se que hace dos veces el for, pero no encuentro la manera de sacar el nombre del archivo actual, y de usar el type para meter los datos en una variable Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: pmabres en 14 Diciembre 2009, 22:32 pm pude solucionarlo!... un poco rústico pero pude jeje... dejo el codigo por las dudas
Código: @echo off lo que hice fue crear un archivo temporal, que luego se borrará Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: geoclima en 7 Marzo 2010, 15:09 pm hola
he estado consultando el las distintas respuesta pero sigo teniendo un problema cuando intento crear un archivo. Os cuento. Yo tengo un archivo XML llamado p11xand1.xml: Código: <root id="and"> este archivo no tiene la cabecera para la transformación xsl y con un bat añado la cabecera que tengo en otro archivo el archivo BAT Código: @echo off Código: <?xml version="1.0" encoding="ISO-8859-15" ?> Código: <?xml version="1.0" encoding="ISO-8859-15" ?> Muchas gracias!!!!! de antemano! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 7 Marzo 2010, 17:09 pm Podrías detectar la línea que quieres corregir, meterla en una variable y editarla con EDLIN.
O podrías usar extracción de caracteres para eso. En la noche veo si tengo acceso a una máquina con Windows y te ayudo. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: geoclima en 7 Marzo 2010, 17:27 pm Hola! aquí está el problema! cuando se unen los dos archivos aparecen unos espacios en blanco al final y esto hace que el archivo xml no se pueda abrir. Esperaré tu respuesta! Gracias!!
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 7 Marzo 2010, 17:31 pm Ponme el archivo ya creado con el problema(los espacios esos que comentas).
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: geoclima en 7 Marzo 2010, 18:03 pm Aquí tienes los archivos:
el archivo original es p11xand1.xml http://www.dalmaubover.org/meteorol/p11xand1.xml además hay el archivo prediccion.add que contiene la cabecera que se le tiene que añadir al xml Esto es porque para visualizarlos utilizo la plantilla prevision.xsl http://www.dalmaubover.org/meteorol/prevision.xsl Para unirlos tengo este archivo bat "cabecera.bat" que primero borra la primera linea de p11xand1.xml y luego escribe en de nuevo el archivo poniendo primero el texto de prediccion.add y luego el otro archivo sin la primera linea. El archivo final se llama p11xand1f.xml. http://www.dalmaubover.org/meteorol/cabecera.bat http://www.dalmaubover.org/meteorol/prediccion.add http://www.dalmaubover.org/meteorol/p11xand1f.xml Pero como puedes comprovar el archivo final no se puede abrir pues al final del documento hay unos espacios en blanco que no dejan bien formado el archivo xml y por lo tanto no se puede abrir. ¿Sería muy complicado hacer este mismo proceso con Perl?? Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: geoclima en 8 Marzo 2010, 22:09 pm Hola Leo,
subí los archivos a mi servidor para que puedas chequearlos. Una pregunta.... como seria el mismo proceso en PERL, es decir unir el contenido del archivo prediccion.add y p11xand1.xml para obtener un tercer archivo que se pueda abrir sin problema en el navegador? ALBERT Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 9 Marzo 2010, 00:00 am Es que no te pido que subas todos los archivos y demás, solo que me pongas el archivo aquí mismo, pegalo y etiquetalo y hazme evidente el error que tiene, para poder tratarlo.
Así me lo complicas mucho. A simple vista se nota que el problema lo deja edlin al editar, deja un caracter al final de las líneas. Podríamos usar sed(no está en Windows, hay que descargarlo) para eliminar dicha línea. Código
Claro que necesitas a sed. El archivo "shit.txt" lo cambias por tu archivo a modificar. O incluso más facil: Código: type "file.txt" | sed $d Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: M_A_R_T_I_N en 12 Marzo 2010, 19:38 pm Hola, la verdad que me fue muy util, pero tengo un tema que no pude resolver:
Quiero modificar una linea que empieza con < y el bat se me queda diciendo que no esperaba < Ej: Código: 111 y quiero que quede: Código: 111 Estoy usando: Código: @echo off Si le pongo comillas me lo modifica, pero cuando abro el htm me muestra las comillas, se podran sacar de alguna manera? Una queda al principio de la linea y la otra al final. El script anda perfecto pero se queda con el signo < Desde ya muchas gracias, es el primer mensaje que escribo si algo esta mal en la redecion del mensaje avisenme. Muchas Gracias. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: xassiz_ en 14 Marzo 2010, 14:28 pm Añade "^" antes del carácter.
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 14 Marzo 2010, 17:09 pm Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: M_A_R_T_I_N en 14 Marzo 2010, 23:01 pm Hola, abria alguna manera de hacerlo o bien de borrar las comillas despues de reemplazado el texto? Muchas Gracias. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: wajagaum en 18 Marzo 2010, 18:25 pm ho la tengo un archio .qrp lo edito con notepad. quisiera saber si con el batch yo puedo mostrar un nuemro que esta dentro del archivo y pedir un nuevo nuemro en pantalla y el archivo bat busque dentro del archivo .qrp los que hayan y reemplazarlo por el pedido en pantalla.
texto: Código: Begin Column y quiero mestrar "/3" y pedir otro numero por ejemplo "/n" y reemplazarlo. te agradecia mucho tu ayuda. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 18 Marzo 2010, 23:39 pm Hola, abria alguna manera de hacerlo o bien de borrar las comillas despues de reemplazado el texto? Muchas Gracias. Con edlin vas a seguir teniendo problemas. Así que te recomiendo sed para Windows, con una expresión regular bastaría. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 19 Marzo 2010, 00:41 am @wajagaum
¿Cambiar estas líneas? Código: Formula = "SUM(TransactionEntry.Quantity)/3" Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 19 Marzo 2010, 04:00 am Si es lo que querías, te tengo esta respuesta:
Supongamos que tenemos el archivo siguiente(yo lo llamé "file.txt": Código: Begin Column Lo trabajaremos sin espacios, para no tener conflicto con los ciclos FOR. El script que hice, cuenta las ocurrencias, y te va pidiendo qué escribir en la línea en donde se dió la ocurrencia, algo así: Código: C:\>lala.bat En este caso solo me pidió de 1 a 2, porque solo hubo dos ocurrencias de tipo: /3. Aquí está el script: Código
Por cierto, necesitas sed para Windows, hacerlo con windows solamente sería un engorro. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: wajagaum en 19 Marzo 2010, 21:16 pm Brothers te cuento que no funciona solo ejecuto el bat, me pide los valores pero no actualiza a los nuevos escritos en pantalla que debo hacer. :DTítulo: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 19 Marzo 2010, 23:06 pm Brothers te cuento que no funciona solo ejecuto el bat, me pide los valores pero no actualiza a los nuevos escritos en pantalla que debo hacer. :DPonme el script que estás usando, el archivo de texto que quieres editar, dime que es exactamente que es lo que quieres editar y si puedes ponme una captura de pantalla. El script lo he probado y a mi sí me funciona. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: wajagaum en 20 Marzo 2010, 15:35 pm ok mira, lo que yo quiero es que un bat, me muestre que numero hay en la fila # x y en la fila #, Y que pida reemplazarlo por un numero nuevo y lo reemplce:
el texto es este mira... nota: no es .txt es .qrp Mi caso es que quiero que me muestre que numero hay despues del / que son la cantidad de meses y cuando me toque cambiarlo me muestre cuantos meses hay y pueda cambiarlo a lli mismo. //--- Report Summary --- // Begin ReportSummary ReportType = reporttypeSales ReportTitle = "Reporte Ventas Compras" PageOrientation = pageorientationPortrait WordWrap = False ShowDateTimePicker = True OutLineMode = True Groups = 0 GroupDescription = "" DisplayLogo = True LogoFileName = "Walter Galvez" ProcedureCall = "" PreQuery1 = "" PreQuery2 = "" TablesQueried = <BEGIN> FROM TransactionEntry WITH(NOLOCK) INNER JOIN [Transaction] WITH(NOLOCK) ON TransactionEntry.TransactionNumber = [Transaction].TransactionNumber AND TransactionEntry.StoreID = [Transaction].StoreID LEFT JOIN Item WITH (NOLOCK) ON TransactionEntry.ItemID = Item.ID LEFT JOIN Department WITH(NOLOCK) ON Item.DepartmentID = Department.ID LEFT JOIN Category WITH(NOLOCK) ON Item.CategoryID = Category.ID LEFT JOIN Supplier WITH(NOLOCK) ON Item.SupplierID = Supplier.ID LEFT JOIN WGPadres WITH(NOLOCK) ON Item.ParentItem = WGPadres.Id LEFT JOIN WGQtyCD WITH(NOLOCK) ON Item.Id = WGQtyCD.ItemId LEFT JOIN Store ON TransactionEntry.StoreID = Store.ID <END> SelCriteria = "" GroupBy = "Item.ItemLookupCode" SortOrder = "Depto, ItemDescription" End ReportSummary //--- Title Rows ---// Begin TitleRow Text = "<Store Name>" Font = "Arial" FontBold = True FontSize = 16 Color = "Blue" End TitleRow Begin TitleRow Text = "<Report Title>" Font = "Arial" FontBold = True FontSize = 12 Color = "Black" End TitleRow Begin TitleRow Text = "Generated On <Report Date>" Font = "Arial" FontBold = True FontSize = 10 Color = "Black" End TitleRow //--- Filters ---// Begin Filter FieldName = "[Transaction].Time" FilterOp = reportfilteropBetween FilterLoLim = "15/01/2010" FilterHilim = "16/03/2010" FilterNegated = False FilterConnector = reportfilterbooleanconAND End Filter //--- Columns ---// Begin Column FieldName = "Promedio" DrillDownFieldName = "" DrillDownReportName = "" StoreIDFieldName = "" Title = "Promedio" VBDataType = vbDouble Formula = "SUM(TransactionEntry.Quantity)/3" ColHidden = False ColNotDisplayable = False FilterDisabled = False ColWidth = 990 GroupMethod = groupmethodNone ColFormat = "#" ColAlignment = flexAlignLeftCenter End Column Begin Column FieldName = "VtaPromedio" DrillDownFieldName = "" DrillDownReportName = "" StoreIDFieldName = "" Title = "Venta Prom" VBDataType = vbCurrency Formula = "SUM(TransactionEntry.Price * (TransactionEntry.Quantity/3))" ColHidden = False ColNotDisplayable = False FilterDisabled = False ColWidth = 1425 GroupMethod = groupmethodSum ColFormat = "" End Column Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: M_A_R_T_I_N en 28 Marzo 2010, 23:24 pm Hola, abria alguna manera de hacerlo o bien de borrar las comillas despues de reemplazado el texto? Muchas Gracias. Con edlin vas a seguir teniendo problemas. Así que te recomiendo sed para Windows, con una expresión regular bastaría. 1000 Gracias!!! Funciona ok!!! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: KamuiDNA en 22 Abril 2010, 23:20 pm Hola, tengo una duda, realize un proceso en Batch que me efectua el despliegue de datos de una base de lluvia por dia, el proceso funciona bien y esta probado en windows vista y XP, pero al montarlo en windows server 2003 este solo ejecuta la mitad del programa y lo cierra, no me marca ningun error ni nada, solo hace como que lo ejecuta pero no ejecuta todo el proceso, alguna idea o sugerencia.
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: KamuiDNA en 23 Abril 2010, 00:20 am problema resuelto. thx
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 23 Abril 2010, 00:26 am Coloca tu código con la etiqueta GeShi, sino borraré el mensaje.
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 25 Abril 2010, 01:30 am Necesitamos el contenido de ISLA_Diaria.txt.
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: KamuiDNA en 26 Abril 2010, 16:49 pm problema resuelto. thx
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: KamuiDNA en 17 Mayo 2010, 22:56 pm Alguna idea de por que no funciona ?
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: astral_153 en 27 Mayo 2010, 03:45 am Hola soy nuevo en esto xD…. Necesito su ayuda para organizar el contenido de un documento de texto…. De mayor a menor……….
Ej: File.txt Código: 5 Y quiero que me salga File.txt Código: 9 El foro es muy bueno e interesante.. me ha ayudado mucho……… ;-) xD Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 27 Mayo 2010, 04:08 am ¿Has usado el comando sort?
Código
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: astral_153 en 27 Mayo 2010, 19:50 pm Código: ¿Has usado el comando sort? gracias por el comado, no lo conocia aun... que do perfecto...... lo utilice de la siguiente manera. Citar @ echo off type file.txt | sort /r pause solamente hay un pequeño problema..... si pongo cantidades mas alta las organiza por el primer numero.... Ej: Citar 88 sale asi77 66 8855 214 1 1111 1 Citar 8855 y deberia salir de esta manera...88 77 66 214 1111 1 1 Citar 1111 asi estaria organizado del mas alto al mas pequeño por cantidad214 88 77 66 1 1 Graciass.. Nuevamente. ;D Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 28 Mayo 2010, 01:04 am Bueno, una vez más está comprobado que las herramientas que da Windows son una reverenda porquería:
Código
Hice este código que lo resuelve: Código Con un simple algoritmo bubble sort bastó: Código:
¿Para qué querías ordenar ese archivo? Por cierto el código también sirve para ordenar cadenas de caracteres: Código: C:\>type file.txt Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 28 Mayo 2010, 01:11 am Alguna idea de por que no funciona ? Cuando no ayudo es porque no me especifican bien que es lo que quieres, o porque no me dejas una salida de como debiera quedar el archivo de texto, así que te sugiero pongas el mensaje de nuevo explicando paso a paso qué es lo que quieres. Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: astral_153 en 29 Mayo 2010, 00:29 am :o Hooo …… gracias por la aplicación…… funciona perfectamente ;-).... Ha lo necesito para organizar artículos vendidos de mayor a menor.. Para saber cual se vendió mas.. En un mes...y así cada mes.. pude hacerlo en excel pero me interesa aprender sobre batch....
gracias nuevamente.. ;-) Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: labandera en 11 Junio 2010, 10:29 am Hola,
A ver si alguien me puede ayudar... Necesito hacer un script que me lea un .txt que contenga numeros de la siguiente forma: 123 4322 3434 3343 3434 . . . Lo que tengo que conseguir es que el script lea solamente los dos últimos números (los de abajo) y me los compare y me devuelva si son iguales o no. Supongo que es sencillo pero soy nulo para esto. Muchas gracias de antemano Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 11 Junio 2010, 20:25 pm Código: C:\>type file.txt Código
Código: C:\>code.bat Código: C:\>code Código Dime para qué querías hacer eso. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: labandera en 11 Junio 2010, 22:56 pm Buenas, gracias por la respuesta, el lunes lo pruebo con calma y ya te cuento...
Lo necesito para monitorizar un error de un stderr.log (remedy). La idea es contar este error y pasarlo a un txt (que me sirve de contador). Cada x tiempo, pueden ser 5 min o 10 min, este contador lo paso a un txt en el que voy añadiendo el número de errores que salen. Ahí entras tú, si los dos últimos números son iguales es que no se han incrementado los errores, si son distintos es que si, entonces tendría que reiniciar un servicio de otra máquina. Espero haber sido claro. Muchas gracias, de verdad. Tengo ganas de probarlo, me estaba volviendo majara y no era capaz de sacarlo. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: astral_153 en 20 Junio 2010, 23:50 pm !Hola! :D tengo una pequeña duda y necesito su ayuda.... :huh: estoy intentando hacer una aplicacion bat que me cierre la cesion tras... (-t xx) XX tiempo.
este codigo funciona perfectamente.. Código: shutdown -r -f -t 30 se reinicia en 30 segundos pero Código: shutdown -l -f -t 30 deberia cerrar sesion en 30 segundos. y la cierra al instante... necesito su yuda o algo similar que pueda utilizar preferiblemente que aparezca en una ventana que no pueda que no permita cancelar facilmente.. xD xD xD ... gracias de antemano.... !Buen Post! ;-) ^^, Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 20 Junio 2010, 23:53 pm A ver, analicemos.
¿Tu duda tiene algo que ver con "Acciones sobre archivos de texto"? Contéstame. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: astral_153 en 21 Junio 2010, 02:08 am ;D la verdad es que no..... no me abia fijado en ese detalle..... excuse... :-[ soy un poco nuevo en esto... pense que como se trataba de batch podrian contestar.... bueno si no se puede buscare otro post... xD xD xD
de todas maneras gracias, felicidades este post me han ayudado mucho.. ;-) Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 21 Junio 2010, 02:18 am Sí, por favor crea un nuevo tema.
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: carlosguay en 4 Julio 2010, 21:04 pm Ya que mi problema es de archivos de texto, lo pongo aqui por no abrir otro hilo. Primero decir que gracias a este hilo, e podido solucionar muchas de las cosas que estoy haciendo com mis archivos, gracias a leo por este aporte. Vereis tengo un problema que no se como solucionar con este archivo. Citar ad 55 6b b9 ad b6 ef ba 05 bc 36 9d 3c 86 43 38 bf cf 2f bf 4a 8b d7 09 4d 02 41 00 bc c7 88 fd f7 19 be aa 03 c6 18 ee b3 2c b9 b8 73 89 0b 72 06 57 8b c9 77 b3 79 c3 4f 5f db 60 e7 89 bd 55 06 90 79 12 f6 84 67 b1 84 c4 dc 22 5b 3a 7f 45 ac 5d 14 7e 1d c6 b9 65 8f 6c 37 36| .].~...e.l76 LINEA CON TEXTO Este archivo, en la parte de la derecha, lleva codigo acssi, que como veis no tengo problema en quitarlo, pero ya veis que en el penultimo renglon ya que la parte de hex no llega hasta el final, pues me deja parte del acssi. Os pondria de las formas que e intentado quitar la ultima linea y la parte de acsii, pero ya se me an olvidado, xd, siempre consigo esto. Citar ad 55 6b b9 ad b6 ef ba 05 bc 36 9d 3c 86 43 38 bf cf 2f bf 4a 8b d7 09 4d 02 41 00 bc c7 88 fd f7 19 be aa 03 c6 18 ee b3 2c b9 b8 73 89 0b 72 06 57 8b c9 77 b3 79 c3 4f 5f db 60 e7 89 bd 55 06 90 79 12 f6 84 67 b1 84 c4 dc 22 5b 3a 7f 45 Como veis no solo borro la ultima linea y la parte de acsii, sino que tambien borro la linea completa y se seguro que es por |, toma como ultima linea esa y eso es lo que pasa. Pues si alquien me puede ayudar, me haria un gran favor. saludos Hola de nuevo. Deje el tema por falta de tiempo y ahora lo he vuelto a retomar, si me pudierais hechar una manita, o alguna idea, seria de agradecer. saludos Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 4 Julio 2010, 21:47 pm ¿Cuál es el código que intentaste?
Se pudiera trabajar con sed para ahorrar problemas, mira: Código: C:\>type file.txt Código: C:\>type file.txt | sed -e "s/\.//g" -e "s/\]//g" -e "s/~//g" -e "s/|//g" Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: carlosguay en 5 Julio 2010, 14:21 pm Gracias leo por tu respuesta tan rapida, pero hay un problemilla.
Veras som muchisimos archivos, todos con hex y acsii, asin. Código: ad 55 6b b9 ad b6 ef ba 05 bc 36 9d 3c 86 43 38 | .Uk.......6.<.C8 Como ves la parte de la derecha, tiene los hex convertidos en acsii, y com este codigo pues lo quito todo, ya que para manipular el archivo, necesito quitar toda esa parte. Código: type private.txt Veo que lo que me pones, quita caracter por carater, pero los archivos som distintos, osea que esa parte es solo en ese archivo, en otros es totalmente distinto, lo unico que es igual es el |, por eso realmente lo que necesito, es algo que me quite TODO, a partir del | incluido. Ahora esta mas claro, no, gracias Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 6 Julio 2010, 22:26 pm Gracias leo por tu respuesta tan rapida, pero hay un problemilla. Veras som muchisimos archivos, todos con hex y acsii, asin. Código: ad 55 6b b9 ad b6 ef ba 05 bc 36 9d 3c 86 43 38 | .Uk.......6.<.C8 Como ves la parte de la derecha, tiene los hex convertidos en acsii, y com este codigo pues lo quito todo, ya que para manipular el archivo, necesito quitar toda esa parte. Código: type private.txt Veo que lo que me pones, quita caracter por carater, pero los archivos som distintos, osea que esa parte es solo en ese archivo, en otros es totalmente distinto, lo unico que es igual es el |, por eso realmente lo que necesito, es algo que me quite TODO, a partir del | incluido. Ahora esta mas claro, no, gracias Sí, ya más claro, ¿pero siempre hay ese delimitador? O sea, siempre está Citar texto..... | texto.... ¿? Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: carlosguay en 7 Julio 2010, 17:13 pm Sí, ya más claro, ¿pero siempre hay ese delimitador? O sea, siempre está Citar texto..... | texto.... ¿? Si leo, SIEMPRE, esta el | y ni el, ni lo que sigue, lo necesito, solo los hexs. Osea, TODOS los archivos, los necesito asin. Código: ad 55 6b b9 ad b6 ef ba 05 bc 36 9d 3c 86 43 38 y NO me sirven asin. Código: ad 55 6b b9 ad b6 ef ba 05 bc 36 9d 3c 86 43 38 | .Uk.......6.<.C8 A ver si fueras capaz de darme una idea, gracias. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 7 Julio 2010, 23:23 pm Código: Ah, okay, ya te entendí, yo en principio no había contestado acertadamente porque creía que no todos los archivos tenían eso, siendo así esto trabaja bien: Código
Usando sed: Código: C:\>type algo.txt | sed "s/\(.*\)|.*/\1/g" Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: carlosguay en 8 Julio 2010, 20:15 pm Justo, lo que necesitaba, ;-)
Gracias leo, e usado el codigo de for, me va estupendamente. Te estoy muy agradecido, me as quitado un quebradero de cabeza. un saludo amigo Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 8 Julio 2010, 22:23 pm Justo, lo que necesitaba, ;-) Gracias leo, e usado el codigo de for, me va estupendamente. Te estoy muy agradecido, me as quitado un quebradero de cabeza. un saludo amigo De nada. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: darth1024 en 5 Agosto 2010, 18:57 pm Estimado Leo, estuve revisando tus aportes al respecto y me parecen excelentes pero me atrevo a pedirte un favor en particular para poder extraer determinada porcion de texto de un txt.
Te puedo enviar la consulta a tu mail personal o sigo por este lado? Gracias. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: darth1024 en 5 Agosto 2010, 19:06 pm Hola Leo, te molesto nuevamente pues me doy cuenta que puedo postear libremente mi consulta:
Tengo un archivo txt con el siguiente formato: Session : 2010/08/05-7 ObjectType : FileSystem DiskAgentID : 1281011407 Object Status : Completed ============================================================================== -rw-r----- 1216988160 05/08/2010 07:06:13 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/o1_mf_annnn_CTF_BK_ARC_65ob8yfj_.bkp -rw-r----- 81516544 05/08/2010 07:05:53 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/o1_mf_annnn_CTF_BK_ARC_65ob8yg1_.bkp Session : 2010/08/04-20 ObjectType : FileSystem DiskAgentID : 1280979007 Object Status : Completed ============================================================================== -rw-r----- 1215431168 04/08/2010 22:02:43 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_04/o1_mf_annnn_CTF_BK_ARC_65nbf9hc_.bkp -rw-r----- 1214676480 04/08/2010 22:02:44 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_04/o1_mf_annnn_CTF_BK_ARC_65nbf9j0_.bkp Session : 2010/08/05-10 ObjectType : FileSystem DiskAgentID : 1281018607 Object Status : Completed ============================================================================== -rw-r----- 1227828224 05/08/2010 09:01:14 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/o1_mf_annnn_CTF_BK_ARC_65ojzrk4_.bkp -rw-r----- 1225617920 05/08/2010 09:01:16 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/o1_mf_annnn_CTF_BK_ARC_65ojzrkz_.bkp Lo que quiero es extraer el texto del detalle "-rw-r-----" que se muestra para cada sesion. O sea, generar un archivo nuevo en base a las sesiones por dia de mi txt original. Espero me puedas dar una mano. Muchas gracias. Sam Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 5 Agosto 2010, 21:07 pm Por aquí mismo.
En un momento checo tu duda. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 5 Agosto 2010, 22:00 pm @darth1024
No he entendido bien como deseas que aparezca la información en el archivo de texto. Este script ofrece algo, pero no sé si es lo que quieres: Código Ponme una muestra de como debiera quedar en el o los archivos de texto. Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: darth1024 en 6 Agosto 2010, 23:01 pm Gracias por tu respuesta Leo.
basicamente se trata de crear un nuevo txt a partir del archivo original. Este original contiene las "sesiones" de varios dias y yo por mi cuenta voy a filtrar que dia quiero generar. Ejm: ORIGINAL (veras que vienen 3 grupos de sesiones dos del dia 05/08 y una del 06/08) Session : 2010/08/06-8 ObjectName : fasactf.fasa.com.pe:/oracle/ora_bck '/oracle/ora_bck' ObjectType : FileSystem DiskAgentID : 1281097807 Object Status : Completed ===================================================== drwxr-x--- 256 04/08/2010 23:30:04 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_03/ drwxr-x--- 256 05/08/2010 23:30:03 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_04/ Session : 2010/08/05-20 ObjectName : fasactf.fasa.com.pe:/oracle/ora_bck '/oracle/ora_bck' ObjectType : FileSystem DiskAgentID : 1281051007 Object Status : Completed =====================================================-rw-r----- 1214829568 05/08/2010 18:00:56 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/ -rw-r----- 1214404608 05/08/2010 18:00:59 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/ Session : 2010/08/05-7 ObjectName : fasactf.fasa.com.pe:/oracle/ora_bck '/oracle/ora_bck' ObjectType : FileSystem DiskAgentID : 1281011407 Object Status : Completed =====================================================-rw-r----- 1216808448 05/08/2010 07:06:08 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/ -rw-r----- 1213480960 05/08/2010 07:06:14 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/ RESULTADO (por ejm. solo quiero quedarme con los dos del 05/08) Session : 2010/08/05-20 ObjectName : fasactf.fasa.com.pe:/oracle/ora_bck '/oracle/ora_bck' ObjectType : FileSystem DiskAgentID : 1281051007 Object Status : Completed =====================================================-rw-r----- 1214829568 05/08/2010 18:00:56 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/ -rw-r----- 1214404608 05/08/2010 18:00:59 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/ Session : 2010/08/05-7 ObjectName : fasactf.fasa.com.pe:/oracle/ora_bck '/oracle/ora_bck' ObjectType : FileSystem DiskAgentID : 1281011407 Object Status : Completed =====================================================-rw-r----- 1216808448 05/08/2010 07:06:08 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/ -rw-r----- 1213480960 05/08/2010 07:06:14 /oracle/ora_bck/ctf/flash_recovery_area/CTF/backupset/2010_08_05/ Entiendes?, solo deseo las tramas pertenecientes al dia (sesion) que escogi (que vendria a ser la cabecera de cada pequeña trama). Gracias por tu ayuda, Leo. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: patorejo en 12 Agosto 2010, 06:46 am muy buena informacion t la agradezco,debio costarte mucho trabajo pero qdo excelente ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-)
lo que pasa es que no me qda muy claro el codigo para reemplazar una palabra de un txt segun yo mas o menos va a asi Código: @echo off lo q quiero saber es si es q se puede cojer el valor de esa ip y ponerla en una variable por ejemplo qdaria "ip=a"(claro esta que "a=192.168.12.1"),y dicha variable "a" tome el valor de otro txt llamado ips.txt. txt 1--->detalle.txt contiene: codigo:255 registro:2333 nombre pc:25555 ip:192.168.12.1<<<----------------hacer que "ip=a" y que "a" tome los valores del otro txt llamado "ips.txt" aleatoriamente txt 2---->ips.txt contiene: 125.251.32.1 145.21.23.5 147.28.6.2 123.214.36.4 125.253.24.26 12.36.25.58 89.25.41.65 41.25.36.41 :-X :-X :-X no se sera posible hacer eso pero creo q con los conocimientos q ya tiens me podes guiar un poco a como hacerlo,de anemano t agradezco por la ayuda q ya me has brindado Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: darth1024 en 19 Agosto 2010, 12:18 pm Estimado Leo, no quiero molestarte pero tuviste oportunidad de revisar mi anterior mensaje, donde describia el formato final deseado?
Samuel. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 19 Agosto 2010, 22:28 pm Estimado Leo, no quiero molestarte pero tuviste oportunidad de revisar mi anterior mensaje, donde describia el formato final deseado? Samuel. Sí, pero estaba ocupado y se me olvidó, mira lo resolví así. Use sed para Windows, debes descargarlo, es gratis y te será de utilidad. Tomando el ejemplo de archivo que dejaste, este: Código: Session : 2010/08/06-8 Y el siguiente código: Código
Una prueba de ejecución: Código: C:\>code.bat Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: WiZZard en 22 Agosto 2010, 05:38 am Excelente manual, se merece chincheta!! ;-) Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: darth1024 en 25 Agosto 2010, 08:40 am Estimado Leo, en verdad es Ud. un Genio!!, muchas gracias por tu apoyo.
Voy a buscar el "sed" para windows y lo pruebo pero a simple vista se ve formidable tu solución. :D Gracias. ;-) Darth1024 Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Hekaly en 28 Agosto 2010, 12:55 pm Buenas. Tengo una duda para extraer cierta información de un archivo .txt pero no me sale y ya he probado de mil maneras.
Una de las parte que tiene el script que estoy creando es para sacar automaticamente el número de paginas que tiene un capitulo de un manga. Bien ya he encontrado en que parte está del código pero no consigo extraerlo en una variable. Las herramientas que uso son las versiones Windows de "lynx" (para guardar el codigo de la web en un txt) y "cut" para extraer trozos de un string. Bien cuando uso lynx para guarda la web se guarda esto en el txt. Código: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"><html<head><meta http-equiv="Content-Type" content=" * Todo es en una linea, lo he partido para que la linea no salga de los bordes del foro. El numero de paginas que tiene un capitulo se encuntra al final del archivo. Código: ./leer?mode=abajo&n=1&m=20&c=8&s=Swot&f=IchiNoFansub&id=85963" El numero de paginas de cualquier capitulo esta donde pone "20" y es lo que quiero extraer para guardarlo en una variable. Hasta aqui todo perfecto pero he probado con cut -c columnas > txt, cut -d -f > txt, pero nada, no me muestra mas que style="background:#000;" He estado investigando y si tengo el archivo en rtf y lo guardo como unicode si he podido extraerlo, pero no se guardar archivos unicode desde la terminal, he probado con "cmd /u /c lynx ....... > archivo.txt" y nada. Sabriais alguna forma de extraer el numero, hay algun parametro de find o findstr que simule cut -c y extraer el número. Muchas gracias por la respuesta. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 28 Agosto 2010, 21:53 pm Eso se hace facilmente con FOR, cuando tenga tiempo doy una respuesta.
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Hekaly en 30 Agosto 2010, 00:35 am Muchas gracias Leo, esperaré con ansias la respuesta.
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: flony en 30 Agosto 2010, 17:58 pm leo una opcion seria con extraccion de caracteres siempre que tenga la misma longitud y los archivos de manga no supere los 100 :laugh:
Código: <"manga.txt" set /p "a=" Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Hekaly en 30 Agosto 2010, 18:42 pm Hola flony, gracias por responder.
Ya pense en algo parecido al codigo que has puesto, meter en una variable el archivo (ya que es todo una sola linea) y luego extraer el numero correspondiente. Pero al intentar introducir el texto del archivo en una variable: Código: <"manga.txt" set /p "a=" Y hacer el corerspondiente echo dice lo siguiente: "No se esperaba < en este momento" Eso debe ser que hay caracteres de redireccion (< y >) y por eso no me funciona bien. Pero aun asi probare el codigo que has puesto. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: flony en 30 Agosto 2010, 20:19 pm fijate no es de genio :P esta en el tutorial de leo aca en esta pagina...como introducir un renglon como variable...pero bue con un for seria mas seguro por las dudas tenga mas de 100 capitulos
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: BlacKGilgamesH en 30 Agosto 2010, 22:45 pm Hola flony, gracias por responder. Ya pense en algo parecido al codigo que has puesto, meter en una variable el archivo (ya que es todo una sola linea) y luego extraer el numero correspondiente. Pero al intentar introducir el texto del archivo en una variable: Código: <"manga.txt" set /p "a=" Y hacer el corerspondiente echo dice lo siguiente: "No se esperaba < en este momento" Eso debe ser que hay caracteres de redireccion (< y >) y por eso no me funciona bien. Pero aun asi probare el codigo que has puesto. Para poner el archivo de texto en la variable se haria asi: Código: for /f %%a in (archivo.txt) do ( Saludos Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Hekaly en 1 Septiembre 2010, 02:10 am Buenas a todos. Ya he encontrado una forma de hacerlo, puede que no la mas facil o mas corta pero si es valida.
Como tengo varios comandos linux para windows he estado pensando y he usado el comando awk. Así poniendo Código: awk "{print $38}" manga.txt | cut -d "=" -f 5 | cut -d "&" -f 1 Lo malo de esto seria que solo funcionaria si la linea fuera de la misma longitud pero para solucionarlo uso el comando wc (tambien para version windows) Código: wc -w manga.txt | awk "{print $1}" Saca el numero de palabras, siendo este numero el que se nesesita para el awk de arriba y asi sacar el susodicho numero. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: flony en 9 Noviembre 2010, 19:37 pm hola leo hay una pregunta que siempre me hago y es que el delims en for delimita "hasta ahi" y me pregunto hay una forma de si yo se el limite saber "despues de" ese limite...ojala haya quedado claro la pregunta :silbar:
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 10 Noviembre 2010, 03:50 am No, no te he entendido, por favor, coloca un ejemplo.
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: flony en 10 Noviembre 2010, 12:18 pm hola leo tendria una forma parecida a esto
Citar hola"como_estas quiero q tome despues de las comillas...yo_aca_al"pp pero_queria-saber"de_vos pero_en_este_renglon_es_no xq_no_hay_comillas resultado Citar como_estas o sea usar las comillas como el denominador comun en los renglones y tomar desde ahi en adelante pp de_vos jijiji es una duda que siempre tuve xq bat me obliga pensar mas o menos asi 1)buscar comillas 2)tomar lo anterior y del 3)renglon sacar por diferencia lo que quiero Citar (hola"comoestas)-(hola)=(comoestas) Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 10 Noviembre 2010, 17:11 pm Con las comillas creo recordar que dará error, creo que ya se habló aquí de un bug en el comando FOR, así que primero debes cambiar ese caracter por otro y hacer el proceso.
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: flony en 10 Noviembre 2010, 23:59 pm y si fuera otro caracter pr ejemplo un punto (.)
tipo Citar hola.txt chau.dll sip.zips Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 11 Noviembre 2010, 04:32 am Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: flony en 11 Noviembre 2010, 15:13 pm ok
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 11 Noviembre 2010, 16:37 pm ¿funciona?
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: flony en 11 Noviembre 2010, 20:52 pm leo si se lo de delims....pero mi pregunta es
Citar murcielago.batman si uso for /f "delims=. tokens=*" in(etc...va a tomar para realizar la accion hasta murcielago...yo lo que quiero es tomar batman para adelante? Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 11 Noviembre 2010, 21:55 pm Código
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: flony en 12 Noviembre 2010, 01:12 am claro pero en el code define con el tokens y con eso perfeccionas la busqueda....si fuera dos renglones y el punto en el segundo renglon se hubica en el tokens 2?
Citar elefante. perro gato alguien haber aclaro para no molestar poder se puede seria el pseudocodigo asielefante perro. gato alguien 1*contar los string 2*"tokens=* delims=." con esto tomo todo el renglon hasta el punto 3*por diferencia eliminar los primeros string hasta el punto 4*el resultado quedan los restantes despues del punto en nuestro ejemplo 1°renglon Citar perro gato alguien 2°renglon Citar gato alguien mi pregunta no hay una forma mas corta de hacerlo? :P gracias por tenerme paciencia ;) Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 12 Noviembre 2010, 04:20 am claro pero en el code define con el tokens y con eso perfeccionas la busqueda....si fuera dos renglones y el punto en el segundo renglon se hubica en el tokens 2? Citar elefante. perro gato alguien haber aclaro para no molestar poder se puede seria el pseudocodigo asielefante perro. gato alguien 1*contar los string 2*"tokens=* delims=." con esto tomo todo el renglon hasta el punto 3*por diferencia eliminar los primeros string hasta el punto 4*el resultado quedan los restantes despues del punto en nuestro ejemplo 1°renglon Citar perro gato alguien 2°renglon Citar gato alguien mi pregunta no hay una forma mas corta de hacerlo? :P gracias por tenerme paciencia ;) No, no hay manera automática de hacerlo, tendríamos que idear algo, o usar "sed" para Windows. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: flony en 12 Noviembre 2010, 12:23 pm gracias leo ....queria sacarme esa duda ;-)
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 12 Noviembre 2010, 15:41 pm Utiliza dos for, uno interno y otro externo(anidados) e itera sobre cada línea, haya el token en el que está el punto.
Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: flony en 12 Noviembre 2010, 15:44 pm ves por eso sos un genio...no lo habia pensado
;-) ;-) ;-) ;-) Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: SennorDark en 4 Diciembre 2010, 17:18 pm Muy buenas tardes, la verdad he estado leyendo este Post, y se ve que sabes lo que haces, es factible que me puedas echar una mano, te explico mi situacion.
Necesito leer un archivo.txt cada x tiempo (esto lo realizare con una tarea programada de windows) El archivo a leer, lo que encuentre a corde unos filtros lo creare en uno nuevo (esto lo tengo, tengo un .bat que contiene los codigos a buscar y pregunto si existe lo borro de lo contrario lon creo) Que necesito hacer y no tengo idea de como hacerlo, es que cuando se ejecute lea las lineas que tenga y si esta el codigo que las pase al otro archivo, pero como el archivo que leo esta creciendo constantemente por otro proceso que lo llena, necesito manejar un flag que me indique la ultima lectura que hice fue en la linea xxxx y de hay empezar a leer para no realizar todo la lectura otravez lo que tengo es lo siguiente: Código Como lo habia pensado, pero no se como llevarlo a un .bat -leer el txt -copiar lo que necesito a un new txt siendo la primera linea el numero de la ultima linea del txt -al volver a ejecutarse leer la primera linea del new txt para saber donde empezar con la nueva lectura al txt y asi sucesivamente Es posible que me puedas ayudar gracias de antemano el codigos.bat tiene lo siguiente: Código
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 4 Diciembre 2010, 20:35 pm En la noche atiendo tu duda.
Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: finoguer en 22 Febrero 2011, 19:45 pm Hola.
Les comento mi problema, para ver si pueden ayudarme ya que yo en este tema estoy muy perdido. Tengo un fichero texto.txt con multiples filas y lo que quiero es quitar un número determinado de caracteres de cada fila a partir de una determinada posición dejando el resto de la fila igual, para todas las filas del archivo. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 22 Febrero 2011, 22:17 pm Necesito el contenido del archivo, qué es lo que quieres quitar y una salida de como quieres que quede. Ah, y que digas con qué propósito haces esto.
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: finoguer en 23 Febrero 2011, 14:19 pm El archivo tiene lineas del siguiente tipo:
Citar AAAAAAAAAAAAAAAAAAAA BBBBB BBBBBBBB BBBBB BBBBBB B CCCCC CCC CCCCCC CCCC C C DDDDDDDDDDD EEEEEEEEE FFFFFFFFFFF GGGGG GGGGGGGGGGGG G G GGGGGGG GGGG HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH IIIII Todo esto es solo una lineay quiero que a partir de la posición 111 de la línea quite 40 caracteres y quede: Citar AAAAAAAAAAAAAAAAAAAA BBBBB BBBBBBBB BBBBB BBBBBB B CCCCC CCC CCCCCC CCCC C C DDDDDDDDDDD EEEEEEEEE FFFFFFFFFFF GGGGG GGGGGGGGGGGG G G GGGGGGG GGGG HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH IIIII El archivo solo tiene caracteres de texto y necesito hacer esto para que automaticamente se me pasen los datos entre 2 programas. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: ydonerlcp en 10 Marzo 2011, 16:26 pm Una consulta.-
Tengo el siguiente texto (texto.txt) Citar ==================================== texto texto texto texto texto texto texto texto texto texto texto texto texto 12Z17NOV2010 texto texto texto texto texto texto texto ==================================== Lo que quiero es que me actualice diariamente la fecha en el formato que esta, sin que agregue ni quite contenido alguno del texto además el archivo quede con el mismo nombre. Alguna sugerencia ? Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 10 Marzo 2011, 22:27 pm Una consulta.- Tengo el siguiente texto (texto.txt) Lo que quiero es que me actualice diariamente la fecha en el formato que esta, sin que agregue ni quite contenido alguno del texto además el archivo quede con el mismo nombre. Alguna sugerencia ? Debiste poner el archivo real, y si no puedes cambiarle por caracter cualquier, pero bueno, podemos editar solamente la línea número 5 (no has especificado si siempre se edita esa línea). En un momento pongo mi solución. EDITO: Aquí está: Código
Necesitas descargar e instalar SED para windows. http://sourceforge.net/projects/gnuwin32/files/sed/4.2.1/sed-4.2.1-setup.exe/download (http://sourceforge.net/projects/gnuwin32/files/sed/4.2.1/sed-4.2.1-setup.exe/download) Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 10 Marzo 2011, 22:53 pm El archivo tiene lineas del siguiente tipo:Todo esto es solo una linea y quiero que a partir de la posición 111 de la línea quite 40 caracteres y quede: El archivo solo tiene caracteres de texto y necesito hacer esto para que automaticamente se me pasen los datos entre 2 programas. Es fácil, necesitas sed para Windows. file.txt: Código
Y con esta línea haces el trabajo: Código
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: ydonerlcp en 10 Marzo 2011, 23:49 pm Estimado Leo Gutiérrez.-
Quiero agradecerle de antemano por la ayuda que me ha brindado, probé el codigo y es exactamente lo que quiero, solo un detalle: El archivo (texto.txt) se edita diariamente de manera que se mantiene actualizado la fecha en el archivo (texto.txt); al ejecutar el batch debe actualizarse automáticamente la fecha en el (texto.txt) sólo esa linea y lo demás debe quedar como estaba. actualmente al ejecutar no guarda la fecha en mi archivo (texto.txt) Cómo puedo hacer ? Desde ya muy agradecido por su respuesta. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 11 Marzo 2011, 00:05 am Estimado Leo Gutiérrez.- Quiero agradecerle de antemano por la ayuda que me ha brindado, probé el codigo y es exactamente lo que quiero, solo un detalle: El archivo (texto.txt) se edita diariamente de manera que se mantiene actualizado la fecha en el archivo (texto.txt); al ejecutar el batch debe actualizarse automáticamente la fecha en el (texto.txt) sólo esa linea y lo demás debe quedar como estaba. Desde ya muy agradecido por su respuesta. Disculpa, no he entendido bien qué es lo que quieres o qué hay que hacer, si pudieras ser un poco más claro en lo que quieres. Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: ydonerlcp en 11 Marzo 2011, 00:18 am Disculpa, no he entendido bien qué es lo que quieres o qué hay que hacer, si pudieras ser un poco más claro en lo que quieres. Saludos. Discula por no ser muy claro en mi consulta: Mi archivo (texto.txt) con contenido arriba mostrado es un archivo que debe ser actualizado diariamente pero sólo la fecha en el formato que está, manteniendo el contenido que tenia. Ahora la solución que Ud. me ha dado cumple mi pedido el detalle esta en: - Al ejecutar el batch quiero que actualice el archivo (texto.txt) con el contenido que tenía pero con la fecha ya actualizada; de manera que al abrir el archivo (texto.txt) me muestre el contenido con la fecha actual del sistema. - El codigo que me envió, me muestra en la ventana de DOS todo el contenido del texto con fecha actualizada hasta ahi PERFECTO; PERO al terminar de ejecutar mi batch lo cierro y vuelvo a abrir mi archivo de texto pára ver si se actualizó mi fecha o no y no veo que la fecha se haya actualizado; en otras otras palabras no guarda la fecha modificada. Por favor .... muchas gracias por su ayuda. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 11 Marzo 2011, 00:39 am Ah, entiendo.
Eso es lo curioso, porque en el código está la opción -i (en la línea de SED), o sea, la opción -i (inplace) se supone que edita el archivo y ya lo deja listo. En fin, vamos a hacer esto: Citar C:\>type texto.txt ==================================== texto texto texto texto texto texto texto texto texto texto texto texto texto 12Z17NOV2010 texto texto texto texto texto texto texto ==================================== C:\>dudas.bat 1 archivos copiados. C:\>type texto.txt ==================================== texto texto texto texto texto texto texto texto texto texto texto texto texto 12Z10MAR2011 texto texto texto texto texto texto texto ==================================== C:\> Código Y la pregunta obligatoria, ¿para qué haces este proceso?, ¿cuál es el fin? Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: ydonerlcp en 11 Marzo 2011, 00:57 am Muchisímas gracias amigo Leo Gutiérrez; todo funciona perfectamente como quería. Estoy automatizando procesos y para que todo funcione era muy necesario un simple archivo de txt con fecha actualizado de manera que al leer la fecha actual pueda ejecutar automáticamente otras solicitudes que un usuario necesite. Dios te bendiga amigo Gutierrez, una vez mas gracias por tu ayuda, ánimos y que los éxitos continúen. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 11 Marzo 2011, 00:58 am Igualmente, saludos.
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: finoguer en 14 Marzo 2011, 09:35 am Leo, muchas gracias por tu ayuda, hace exactamente lo que quería.
Un saludo. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: wigo69 en 6 Julio 2011, 23:09 pm Disculpa leo lo que sucede es que estamos haciendo un trabajo y toda la información que subiste nos ha servido muchísimo pero aun así no logramos terminar el texto mi pregunta es la siguiente como puedo dividir un archivo txt en dos sub archivos que contengan cada uno la mitad de la lineas de código de txt general
por ejemplo tengo un texto.txt de 1000 lineas de código deseo que se creen dos sub texto.txt el 1 y el 2 que contengan 500 lineas de código 1 texto.txt = 0-499 2 texto.txt = 500- 1000 ojala nos puedas ayudar de antemano muchísimas gracias aca esta el enunciado a) Retorne al standar output el numero de lineas original de el archivo b) Retorne al standar output la cantidad de lineas en donde aparece la palabra "version" sin importar si es en mayusculas o minusculas c) Cambie todas las ocurrencias de la palabra "Version" por "VERSION" en todo el archivo d) Elimine las lineas en blanco del archivo e) Retorne al standar output el nuevo numero de lineas del el archivo f) Dividir el archivo en 2 archivos con el mismo taman~o (o con diferencia minima) indicando el nombre de los archivos generados g) Comprimir el archivo original (con los cambios indicados) y darle el siguiente nombre: original.yyy-mm-dd.txt donde yyyy-mm-dd es la fecha actual es el f) dividir cuídate y muchas gracias :) Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 6 Julio 2011, 23:37 pm ¿En dónde te han encargado hacer esto?
Código El resultado se guarda en temp1.txt y el otro en temp2.txt. Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: wigo69 en 6 Julio 2011, 23:43 pm muchas gracias, esto me lo pidieron en la u para un trabajo pero no sabiamos mucho, cosas vagas y hemos ido aprendiendo mediante tu post :)
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 7 Julio 2011, 00:01 am Mmmm, no sabía que les enseñaban Batch en la universidad.
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: wigo69 en 7 Julio 2011, 00:04 am disculpa que te moleste denuevo lo que sucede es que ise un texto llamado texto1.txt
tiene 10 lineas 5 son de letras y 5 de numeros al compilar el codigo y cambiando file por texto1.txt cuando ejecuto no me pesca no se si debo cambiar algunos otros parametros Código asi lo deje solo cambie el file muchas gracias por tu respuesta y disculpa las molestias Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: wigo69 en 7 Julio 2011, 00:07 am es un profesor de Sistema operativo xD que no nos ise certamen 3 por tiempo y nos dio un trabajo pero sin saber que no sabiamos casi nada yo por ejemplo nada y nos dio tiempo hasta el viernes, no necesito nota pero la idea no es sacarse un 1 y de pasadita aprender xD
gracias por tu ayuda :) Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: wigo69 en 7 Julio 2011, 00:19 am disculpa mi pregunta funciona y super bien muchisimas gracias por tu ayuda :) ahora estare actualizando y viendo esta pagina no la conocia y es super buena, de verdad muchas gracias por tu tiempo :)
adios cuidate mxo :) Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 7 Julio 2011, 00:21 am Estás haciéndolo bien.
Código file.txt tiene las líneas que quieres dividir. La primera mitad la tiene "temp1.txt", la segunda "temp2.txt". Tienes que tener en cuenta en que el script agrega siempre, así que a cada corrida del script tiene que borrar antes temp1.txt y temp2.txt ya que siempre estará agregando. Pruebalo y me cuentas. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: wigo69 en 7 Julio 2011, 00:23 am si si funciono super bien fue por que ando matando moscas xD muchísimas gracias por todo de verdad no conocía esto y realmente me gusto estaré visitando esta pagina para actualizar mi conocimiento.
agradezco mucho tu tiempo. cuídate mucho y que dios te Bendiga Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: PTT69 en 7 Julio 2011, 02:55 am Hola leo, tengo una duda que no pude solucionar con los codigos
de la primera página cómo puedo hacer que cambie "una" sola palabra a mayuscula y no todo el texto? ejemplo "La depresión es la forma mas común del sufrimiento mental. Que es la depresión? Los test para la depresión causante de serios problemas" cambiemos depresión "La DEPRESION es la forma mas común del sufrimiento mental. Que es la DEPRESION? Los test para la DEPRESION causante de serios problemas" Cuando hago esto: :silbar: Código no me deja pasar al codigo :¬¬ Código para contar la cantidad Si me puedes ayudar porfavor, de antemano muchas gracias :rolleyes: Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: PTT69 en 7 Julio 2011, 03:19 am lo deje asi:
Código @echo off echo Palabra depresión Sale: type texto.txt | find /i /c "depresión" pause goto:eof y me sale : palabra depresion sale: :o 0 presione una tecla..... palabra depresion sale: :¬¬ 2 presione una tecla...... como hacerlo sin goto:eof, esto está fallando :-\ Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: SuperDraco en 7 Julio 2011, 04:25 am lo deje asi: @echo off setlocal enabledelayedexpansion for /f "tokens=* delims=" %%x in ('type texto.txt') do ( set linea=%%x set linea=!linea:depresión=DEPRESION! call :show !linea! ) goto:eof :show echo %* >> out.txt @echo off echo Palabra depresión Sale: type texto.txt | find /i /c "depresión" pause goto:eof y me sale : palabra depresion sale: :o 0 presione una tecla..... palabra depresion sale: :¬¬ 2 presione una tecla...... como hacerlo sin goto:eof, esto está fallando :-\ Como hacer sin goto:eof, ¿El que? No se porque dices que no funciona? Código Lowerit.exe - Convierte texto a minúsculas. Upperit - Convierte texto a MAYÚSCULAS. http://foro.elhacker.net/scripting/batch_packs_de_aplicaciones_varias_commandlineinterface_actualizado_05mayo-t322976.0.html Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 7 Julio 2011, 07:29 am El código de pitoloko funciona, lo he probdo.
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: PTT69 en 7 Julio 2011, 19:38 pm A mi no me funciona, me dice depresión sale 2 y en verdad son 3
pero en fin, a lo que voy es que la idea es hacer el mayúscula en primer lugar, después de ese código hacer el resto, me explico: Primero la mayúscula: :silbar: Código: @echo off Código: @echo off Código: @echo off primero me cuenta la palabra, sale 2, son 3, y despues me cambia a mayus, la idea es hacer lo contrario, primero la mayus, y seguir con los codigos hacia abajo. alguna idea? :-\ Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 7 Julio 2011, 19:48 pm Código: type out.txt | find /v /c "" < out.txt Eso está mal, debería ser así: Código
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: PTT69 en 7 Julio 2011, 20:09 pm Así esta la cosa
(http://www.imagengratis.org/images/1di8dd.jpg) Borré lo que me dijiste Lo ejecuto y me sale nada: (http://www.imagengratis.org/images/2ek6re.png) Después aprieto Enter y se cierra, y tambien genera el archivo out.txt donde me cambia a mayus y borra los saltos de línea (http://www.imagengratis.org/images/3lu5ol.png) La idea no es cambiar el orden de los códigos, ese es el drama :-\ Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: SuperDraco en 8 Julio 2011, 06:19 am el código que te dije yo si que funciona al decir cuantas palabras "depresión" encuentra, pero ten en cuenta que si alguna NO tiene acento en la "ó" pues obviamente entonces esa no la va a contar.
saludos Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 8 Julio 2011, 06:49 am El error debe estar en el manejo del acento.
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: PTT69 en 8 Julio 2011, 10:00 am jajaja no me entienden la pregunta... :-[
tonce busquen la palabra la, si da igual eso, a lo que voy es que me tome todo el código, todo, es decir, termina de buscar la palabra "X" y pasa a la siguiente función.... el problema es pasar a la siguiente función sin error :-\ Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 8 Julio 2011, 17:39 pm A ver así:
Código Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: wigo69 en 8 Julio 2011, 17:40 pm ola leo te escribo por que tengo un problema tengo el codigo final con todos los pasos pero cuando quiero partir el texto inicial en dos me crea 2 subtextos con mas codigo del debido por ejemplo tengo texto1.txt con 10 lineas de codigo y deceo partilas en 2 de 5 lineas como te dije pero me crea dos subtextos con 20 lineas cada uno xD te muestro mi codigo final
Código
muchas gracias de antemano Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 8 Julio 2011, 17:45 pm Coloquen el contenido de los archivos de texto que están usando.
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: wigo69 en 8 Julio 2011, 17:48 pm texto.txt
asdasd asdasd asdsad asdsad asdsad 11111 22222 33333 44444 55555 Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 8 Julio 2011, 21:34 pm A ver, veamos, hagamos la prueba con el siguiente texto.txt:
Citar asdasd asdasd asdsad asdsad asdsad 11111 22222 33333 44444 55555 version Hay que cambiar "version" por "VERSION". Usando el siguiente código: Código
Nos da el siguiente resultado: Código: Codigo Rene toledo flores y Alexis Maureira s. Hackers textomodificado.txt: Código: asdasd parte1.txt Código: asdasd parte2.txt Código: 11111 Listo, funciona. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: oloco en 20 Julio 2011, 21:32 pm Hola a tod@s.
Llevo días dándole vueltas a un problema con un script y he visto este post. Lo he leido enteramente y he visto cosas muy interesantes, pero nada que se asemeje a mi problema: Utilizo sqlcmd para consultar una tabla llamada familia en una BD SQL, y el resultado lo redirecciono a un fichero de texto llamado familia.txt este es el formato que me devuelve: Código: szfamilyname (todos los nombres que me interesan empezarán por H) Con el comando findstr /I "H" familia.txt > contador.txt puedo sacar la información que me importa al fichero contador.txt Bien. El problema es que hay muchas bases de datos, y cada una de ellas me devuelve un número diferente de valores, aunque todos los nombres empiezan por H también. Por ejemplo, si consulto la misma tabla szfamilyname en otra BBDD, el resultado podría ser: Código: szfamilyname Lo que me interesa es poder crear un script de forma tal que cada vez que consulto la tabla en cualquier base de datos, me cree una variable cuyo contenido sea el nombre de cada valor que devuelve. Lo complicado de todo esto, es que el número de valores puede variar en cada BBDD, por lo que seguramente tenga que crear algún tipo de contador que lea las lineas del fichero contador.txt y de alguna forma cree una variable con el nombre que aparece en cada linea (sean cuantas sean las lineas). ´ Estoy seguro de que me he expresado bastante mal, así que voy a tratar de exponerlo de una forma más amena con un ejemplo: Mi aplicación necesita consultar el libro de familia (la BBDD) para poder acceder a la información del número de hij@s que hay (tabla szfamilyname). Con cada nombre existente en cada lista que dicha tabla me reporte, quiero crear una variable para más tarde poder operar con ella (estaría genial poder llamar a cada variable con el mismo nombre que su propio valor, pero eso es lo de menos) Hasta el momento no me había encontrado con ningún problema similar (he tenido que utilizar un código sacado de aquí para poder contar el número de lineas que tiene un fichero y después operar con él), pero creo que aquí el kid del problema es cómo hacer para que, independientemente del número de "hij@s" que exista, se cree una variable con su nombre. Espero entre tod@s podais ayudarme. Un saludo, y mil gracias por adelantado!!! P.D por cierto, si pensais que existe otra manera diferente y más sencilla de hacer lo que necesito sin tener que usar ficheros de texto, sentiros en libertad de cambiar mi post a otro sitio. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 20 Julio 2011, 22:01 pm En un rato checo tu duda.
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: oloco en 21 Julio 2011, 01:37 am Vale Leo. Gracias!
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 21 Julio 2011, 08:29 am Bueno, a ver si he entendido, tu haces una consulta SQL la cual te devuelve los valores que comienzan con H y eso lo volcas a un archivo familia.txt...
Ahí hay que trabajar el archivo para que cada valor(ejemplo): HEMILIO HRODRIGO HCARMEN HLORENA lo meta en una variable independiente, bueno, si he entendido bien, podríamos trabajar con un array: Código: @echo off He comentado un poco el código para que lo entiendas mejor, sino cualquier duda la aclaramos. Tomando el archivo familia.txt con: Código: C:\Users\leo>type familia.txt El código devuelve: Código: C:\Users\leo>code.cmd Ahora, si quisieramos mostrar todos los valores: Código: @echo off ¿Me queda una duda, para qué utilizas Batch?, en el trabajo?, universidad? Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: oloco en 21 Julio 2011, 18:37 pm Hola de nuevo, Leo!
Verás, después de haber expuesto mi duda seguí investigando. He de decir que el ejemplo expuesto no es real. Con esto quiero decir que los datos obtenidos no son nombres de persona, sinó nombres de equipos (el ejemplo lo puse para tratar de hacerme entender mejor, pero pienso que fue un error). El equipo con la base de datos al que se hace la consulta es un servidor, y los resultados obtenidos son los equipos que a él se conectan. Una vez tenemos los datos, necesito hacer operaciones con ellos, como por ejemplo un ping, para obtener su IP y revisar que todos tengan conectividad y la misma máscara de subred... por ejemplo. Todo esto quisiera que se hiciese de forma automatizada, por ese motivo la importancia de tener una forma fácil de acceder a las variables. Resumiendo: Mi script se conecta mediante psexec al servidor, hace la consulta sql y guarda los resultados a un fichero. Ahora gracias a tu ayuda, puedo tener un contador que me indica cuantos resultados hay. Sin embargo, sigo sin ver una forma de poder realizar operaciones con los equipos clientes, dado que su número es variable según el servidor al que se consulte. Si siempre tuviese 2 clientes, en el script llamaría siempre a dos variables, con lo que se acaba el problema. Pero en mi caso, el script tiene que llamar a x variables: Código Aqui está mi problema. Si tuviese siempre tres resultados, pondría el código tal cual has expuesto, pero como los resultados pueden ser desde 1 hasta 12, no se muy bien como planteármelo para poder crear una orden de ping (entre otras) por cada uno de ellos. Ante todo quiero agradecerte toda la ayuda que me estás brindando. Espero puedas entender lo que intento explicarte, pues soy consciente de que esto no se me da demasiado bien y quizas estoy pasando cosas por alto. Me mantengo a la espera. Un abrazo!! P.D Por cierto, respondiendo a tu pregunta. Este script lo utilizo para mi trabajo, y utilizo cmd pues los equipos a los que nos tenemos que conectar utilizan Windows XP o 2003, tienen unas directivas de seguridad elevadas y no tenemos permiso para utilizar utilidades de terceros. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 21 Julio 2011, 20:30 pm Al utilizar un array, tienes total control sobre todos los valores sabiendo el número de ellos, es decir, en mi último script:
Código: @echo off Suponiendo que los valores fueran máquinas y yo quisiera saber cuales de ellas están online u offline: Código: @echo off Código: !query! es el array, si yo quiero acceder a la posición x: Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: oloco en 21 Julio 2011, 20:57 pm Hola Leo.
Pienso que más o menos me va quedando algo más claro. Lo cierto es que me resulta bastante complejo, pero con ganas de aprender (además en mi trabajo me resultará muy util). He ejecutado el código que has creado, y funciona correctamente menos en un punto. En este equipo tengo sólo dos clientes (debería reportar dos equipos asociados a este servidor), pero cuando ejecuto la parte del código que realiza el ping a cada uno de los valores del array, tambien lo realiza a un "equipo" cuyo valor es nulo. Código
Me doy cuenta de que ese tercer valor es el que corresponde con !contador! dentro del código. ¿Alguna sugerencia? Gracias! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 21 Julio 2011, 21:16 pm ¿Puedo ver la tabla o el archivo de texto que usas cuando da error?
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: oloco en 21 Julio 2011, 21:42 pm Por supuesto. Este es el fichero temp.txt (en el que se graban los equipos):
Código: szcomputername y esto es el código que tengo en el script: Código
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 21 Julio 2011, 21:53 pm Sí, el problema está con la variable contador, que da un valor de más, solo hay que decrementarla y listo.
Código: @echo off Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: oloco en 21 Julio 2011, 22:04 pm Efectivamente Leo. Ya funciona todo correctamente.
Ahora, a partir de aquí, ya puedo seguir aumentando funciones al script para darle más funcionalidad, así que no sería extraño que vuelva a pasarme por aquí en busca de tu consejo. Te agradezco enormemente la paciencia y tiempo gastados conmigo. P.D Por cierto, podrías recomendarme alguna lectura, algún libro o manual para poder aprender nuevos conocimientos sobre batch? Un saludo, y gracias por todo!!! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 21 Julio 2011, 22:08 pm ss64.com (http://ss64.com) contiene ayuda sobre los comandos de Windows XP y algunos ejemplos.
robvanderwoude.com http://www.robvanderwoude.com/batchstart.php (http://www.robvanderwoude.com/batchstart.php) también contiene mucha ayuda. Y por supuesto este sitio, los temas pegados en esta sección. Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: vrer en 23 Julio 2011, 22:31 pm y como seria para sacar el nombre de la conxion de red en algunos es Conexión de área local 2 otros Conexión de área local y otros lo configuran con un nombre personalizado o sistema operativo esta en otro idioma e intentado con for pero al ponerlo en variable no agarra los acentos y da error por nombre e tratado de sacarlo de netsh interface ip show config pero nose puede poner delimitadores "
bueno asi netsh interface ip show config> nombre_Red.txt quiero sakar lo q esta en comillas ya q siempre el nombre esta ahi entre las 2 comillas en cambio en ipconfig> red.txt no se como podria funcionar ya q todo cambiaria x idioma del sistema (como el Adaptador Ethernet); tbm cambiaria el numero de letras del nombre de red si es Conexión de área local 2 o 1 o si lo cmabiaron de nombre por eso opte por el netsh interface ip show config para el nombre de la conexion de red pero no se como sakar lo q esta en comillas del archivo de texto o de variable Configuraci¢n para la interfaz "Conexi¢n de rea local 2" Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 23 Julio 2011, 23:33 pm Teniendo como base lo siguiente:
Código: C:\Users\leo>netsh interface show interface Se podría implementar esto: Código
Por cierto, aquí se acostumbra pedir las cosas por favor, tener cortesía, no la estás teniendo, solo estás pidiendo, y otra cosa, hay que cuidar más la ortografía, estás dejando totalmente de lado los signos de puntuación. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: vrer en 24 Julio 2011, 00:45 am muchas gracias leo no es que este exigiendo y que no sepa ortografia basica es que asi suelo escribir por internet pero voy a cambiar unas consultas mas sino es problema en el codigo usas el config pero si el sistema operativo esta en otro idioma y no encuentra el config, es decir el solo falta el nombre de la red para a traves del comando netsh pueda cambiar las ips dns y sin el nombre exacto me da error para eso necesitaba el nombre y si se pudiera hacer el proceso silencioso de modo que no salga nada en la pantalla del batch y guardarlo en una variable. Muchas gracias ante todo
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 24 Julio 2011, 20:18 pm En el código, sólo habría que setearlas dentro del ciclo for:
Código Prueba cual de esos dos ciclos te funciona, y si ninguno lo hace pega las salidas del código, del batch. También sería bueno que pusieras las salidas de los comandos, para ver cómo procesarlos y obterner lo que quieres. Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: vrer en 24 Julio 2011, 21:50 pm muchas gracias leo ahora pruebo los codigos ::)
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: vrer en 31 Julio 2011, 22:20 pm Una consulta mas por favor quisiera saber como puedo poner las lineas de la variable en varias variables mira cuando hago esto
Código: for /f "tokens=4*" %%a in ('netsh interface ip show config ^| findstr /R "^Configu*"') do ( me sale esto Connection : "Loopback Pseudo-Interface 1" pero tengo varias conexion de red mira cuando pongo para ver todas las redes Código: for /f "tokens=4*" %%a in ('netsh interface ip show config ^| findstr /R "^Configu*"') do ( "Conexión de red inalámbrica" "Conexión de área local" "Conexión de red Bluetooth" "Loopback Pseudo-Interface 1" Con ponerlo en una sola variable esta tomando solo la ultima linea como podria hacer para que cada linea de las posibles conexiones de red sea una variable asi pueda escoger que linea-variable usar muchas gracias de antemano Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 1 Agosto 2011, 00:41 am Lo que se hace normalmente, es que se colocan las variables independientes en un array:
Código: setlocal enabledelayedexpansion Y así luego puedes consultarlo de esta manera: Citar echo !conexion[0]! echo !conexion[%variable%]! ... El código no está probado, tu dirás si funciona. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: vrer en 1 Agosto 2011, 03:25 am funciona perfectamente gracias nuevamente leo ;-)
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 1 Agosto 2011, 04:19 am Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: DameBanda en 20 Agosto 2011, 01:11 am Hola leo
Una pregunta, en batch, como se haría para volcar todas las lineas de un archivo a una variable?? Supongo que es una pregunta de noob absoluto pero ese problema en concreto me saca de quicio :) Salu2 Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 20 Agosto 2011, 04:01 am http://blog.almadark.com/2009/05/19/batch-para-poner-el-contenido-de-un-archivo-txt-en-una-variable/
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: DameBanda en 20 Agosto 2011, 14:55 pm Gracias por tu respuesta Leo, me ha servido de mucho
Y yo pensaba que sería mas sencillo ;) Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: No_Miaus en 29 Agosto 2011, 02:47 am Holas!
En un txt de una sola linea ejemplo: "Esto es una prueba". Como podría añadirle al final de la linea "/loquesea" sin poner un espacio delante de manera que quedara: "Esto es una prueba/loquesea". Muchas gracias :) Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: No_Miaus en 29 Agosto 2011, 02:48 am Holas! En un txt de una sola linea ya creado, ejemplo: "Esto es una prueba". Como podría añadirle al final de la linea "/loquesea" sin poner un espacio delante de manera que quedara: "Esto es una prueba/loquesea". Muchas gracias :) Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 29 Agosto 2011, 07:03 am Holas! En un txt de una sola linea ejemplo: "Esto es una prueba". Como podría añadirle al final de la linea "/loquesea" sin poner un espacio delante de manera que quedara: "Esto es una prueba/loquesea". Muchas gracias :) ¿Por qué pones dos veces el mensaje? ¿Cuál es la intención? ¿Para qué necesitas hacer esto? Código: @echo off Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: No_Miaus en 29 Agosto 2011, 13:50 pm Perdon es que soy nuevo en el foro y no se lo que hice xD.
Gracias por la ayuda pero hay alguna forma de que no se añada un espacio? se me queda "Esto es una prueba(espacio)/loquesea" y yo no quiero el espacio :( quiero que se quede junto, es para una dirección de internet. Y una vez modificada la linea como puedo volver a utilizarla entera en el bat? Un saludo! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: vrer en 29 Agosto 2011, 20:53 pm buenas unas preguntitas :)
como saber el nombre del archivo bat que estoy ejecutando teniendo en cuenta que le pueden cambiar de nombre y ponerlo en una variable y esta para poner cookies desde %appdata%/mozilla/firefox/profiles pongo Código: dir /b v2h1b0vu.default quiero poner las primeras 8 letras en una variable ya que siempre cambian y esa es la direccion de cookies de firefox y una cosa mas como saber la direccion de mi usb teniendo en cuenta que varia de letra por eso de las particiones de discos Es para copiar cookies y guardarlo en un usb asi puedes entrar a las paginas que quieras automaticamente con tu usuario y contraseña sin necesidad de ponerlos solo volviendo a copiar las cookies del usb a la direccion de las cookies de firefox solo me falta eso de la unidad de usb y las primero 8 letras, gracias de antemano ::) Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 30 Agosto 2011, 01:57 am %~0
%0 %~dpnx0 Consulta el post "Programación avanzada Batch" en esta misma sección. El script se ejecutará desde la USB? Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: vrer en 17 Septiembre 2011, 17:18 pm gracias, ya revise programacion avanzada en batch y sobre el script se ejecutara en la computadora en algun disco pero no dentro del usb quisiera saber si hay alguna forma de conseguir la direccion del usb que este conectado.
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 17 Septiembre 2011, 18:54 pm http://foro.elhacker.net/scripting/batch_problema_con_script_para_detectar_usb_solucionado-t245816.0.html (http://foro.elhacker.net/scripting/batch_problema_con_script_para_detectar_usb_solucionado-t245816.0.html)
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: ariel_fnx en 6 Enero 2012, 05:46 am Hola a todos. Soy nuevo en el foro como usuario, pero he estado leyéndolo y me ha gustado bastante la camaradería que existe.
Les comento mi problema que no logro resolver. Tengo un programa de gestión comercial que no tiene soporte para impresoras fiscales. No obstante he encontrado un spooler para la impresora fiscal que me permite realizar facturas enviándole un archivo con los datos necesarios. El programa de gestión me genera archivos con el ticket a imprimir, pero en otro formato no soportado por la impresora fiscal. Lo que yo debo hacer es sacar los datos del archivo de ticket que me genera el programa de gestión (es un txt) y colocarlos en su correspondiente ubicación en el archivo de impresión de la impresora fiscal (es un txt también), para que de esa manera la impresora fiscal pueda imprimir correctamente la factura. El archivo de la impresora fiscal (factura.txt) es el siguiente: Código: b Empresa Equis 30702383923 I C Domicilio... Los datos a reemplazar son en este caso donde dice Item Uno por la descripción del primer producto, donde dice 30.0 la cantidad del mismo, y donde dice 1.0 el valor del mismo. Donde dice Item Dos la descripción del segundo producto, donde dice 1.0 la cantidad del mismo, y donde dice 20.81 el valor del mismo. Y así sucesivamente según la cantidad de artículos que haya en el archivo de ticket generado por el programa de gestión. El archivo que me genera el programa de gestión (ticket.txt) es el siguiente: Código: Ticket Nro. 12 La idea sería crear un archivo .bat para que realice dicho procedimiento, ya que el programa de gestión corre sobre windows. Tengo conocimientos de principiante en el tema, ya que me encuentro aprendiendo desde hace poco tiempo, y no logro encontrar la manera de hacerlo funcionar. Estaré muy agradecido de la ayuda que me puedan brindar, ya que necesitaría poder utilizar la impresora fiscal lo antes posible. Desde ya, gracias a todos.- Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 6 Enero 2012, 07:45 am Bien, te podemos ayudar, solo necesito que pongas un ejemplo claro, si es posible real del archivo de entrada (el archivo que hay que convertir) y el archivo a como quieres que quede, exactamente. Porque veo que el último archivo no tiene mucho que ver con el primero.
Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: ariel_fnx en 6 Enero 2012, 21:55 pm Hola Leo, gracias por tu rápida respuesta. Por todo lo que estuve leyendo en el foro no tengo más que felicitarte, porque la verdad es que tenés una facilidad para resolver lo que te plantean digna de sacarse el sombrero.
Bueno, te explico mejor lo que quiero hacer. El programa de gestión del negocio me genera un archivo (ticket.txt) el cual contiene lo siguiente: Código: Ticket Nro. 12 De este archivo lo que nos interesa extraer son 3 tipos de datos: cantidad de un producto, descripción del producto, y el precio del producto (que en el ticket ya aparece calculado el precio total del mismo, es decir, cantidad de un producto por el precio individual, razón por la cual tenemos que calcular el precio individual para asignar a esta variable) En el caso de este ticket vemos que hay tres líneas de venta. En la primera fila nos indica que vendió 3 productos, y en las filas 2 y 3 se vendió un solo producto de esos items. En resumen, tenemos 3 variables por línea para extraer. Ahora bien, con esos datos que extraemos de esas líneas tenemos que crear un archivo que se llame factura.txt, el cual debería tener el siguiente formato: Código: @ A S Así es como debería quedar el archivo factura.txt. Ahora te explico en detalle cómo esta conformado este archivo. La primera línea es siempre igual: Código: @ A S Código: B AMARILLO LEDERNIL E - EURO 3.0 9.0 21.0 M 0.0 0 b la línea comienza con una letra B mayúscula y un espacio, luego la descripción de un producto y un espacio, luego la cantidad de ese producto en formato cantidad.0 (por ejemplo, en caso de ser 3 unidades, 3.0) y un espacio, luego el precio unitario de ese producto en formato x.x (por ejemplo, si el precio es 10 sería 10.0, y si el precio es 10,40 sería 10.40) y un espacio, y luego la línea siempre terminaría con: 21.0 M 0.0 0 b Finalmente, luego de las líneas de los productos vendidos seguirían las últimas líneas, que siempre son iguales: Código: C P Subtotal 0 Con el archivo factura.txt creado ya puedo imprimir la operación de venta realizada en la impresora fiscal. Bueno Leo, espero haberte explicado lo más detallado posible lo que deseo hacer para que puedas ayudarme. Cualquier duda que tengas estaré atento para contestarte lo más rápido posible. Y desde ya, un millón de gracias. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 6 Enero 2012, 23:15 pm Bien, dame un momento, ya estoy en ello.
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 7 Enero 2012, 00:49 am Listo, terminé, resultó una solución demasiado artesanal. En parte porque en Windows carece de utilidades para procesar flujos, de expresiones regulares, en fin...
Antes que nada comentarte algo, batch es muy arcaico y simple, no tiene soporte para operaciones con decimales, así que hice un pequeño código en C solamente para la parte de sacar el precio unitario, es muy simple: Código
Esto es lo único que tendrás que utilizar, ahora el batch. Teniendo el ticket.txt: Código: C:\Users\leo\batch>type ticket.txt Luego de ejecutar el script me genera esto en "factura.txt": Código:
Este es el código del archivo batch: Código
El ejecutable en C que hice lo llamé "div.exe" y lo uso aquí: Código: for /f "tokens=*" %%x in ('div %%c %%a') do echo B %%b %%a.0 Sólo se encarga de dividir, por ejemplo Código: div.exe 10.0 2.0 Aquí lo puedes descargar: Código: http://www.megaupload.com/?d=OWC2YJSN O sino puedes compilarlo tu mismo con el código fuente que te dejé arriba, si lo compilas tu mismo, no olvides llamar al ejecutable generado div.exe, sino el batch fallará. Saludos, cualquier duda me dices. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: ariel_fnx en 7 Enero 2012, 04:04 am Hola Leo. Tuve que salir a la tarde y recién llego a casa. La verdad que me sorprendiste al ver que ya lo habías resuelto. Nuevamente lo digo, sos realmente bueno en lo tuyo.
Ahora voy a probarlo y luego te cuento cómo me fue. Mil millones de gracias, no te das una idea la mano que me diste. Hasta luego. Un abrazo.- Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: ariel_fnx en 9 Enero 2012, 17:36 pm Hola Leo. El código que me pasaste junto al programa que hiciste en C para calcular los precios unitarios funciona a la perfección, y he podido hacer andar la impresora fiscal correctamente.
Dos millones de gracias por tu ayuda y por tu tiempo. Sólo me resta seguir aprendiendo. Gracias y éxitos.- Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 9 Enero 2012, 20:36 pm De nada, saludos.
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Demente117 en 15 Enero 2012, 02:15 am Hola soy nuevo, primero no se si va aki en este pagina pero creo que si, perdonad por si me "ekivoko".
tengo 2 dudas 1. Voy a intentar explikarme, creo que es sencillo (supongo!!!) quiero hacer una lista como en el comando dir /b pero que incluya las subcarpetas tambien. me explico: quiero conseguir hacer @echo off dir /b /s>"nombre de archivo.txt" pero que el resultado no incluya las rutas de los archivos, como hace por defecto @echo off dir /b>"nombre del archivo.txt" en definitiva pretendo hacer que quede solo el nombre del archivo en cada linea he estado modificando (por que para crear no es que sea muy bueno) el codigo @echo off setlocal enabledelayedexpansion for /f "tokens=* delims=" %%x in ('type nombre.txt') do ( set linea=%%x set linea=!linea:C:\Prueba=! call :show !linea! ) :show echo.%* >> nombre2.txt pero no consigo mi proposito, mi idea es hacer una lista.txt y luego modificar el archivo quitando hasta el ultimo caracter "\" de las rutas pero no consigo hacer bien el codigo por que si cambio la carpeta donde ejecuto el bat, como tiene otra ruta no me sirve, tengo que hacer otros muxos bats para mi proposito lo kual es muuuuuu costosssoooooooo jejejejej ALGUIEN me podria ayudar?? espero haberme explikado bien, mis preguntas serian: 1 ¿¿¿¿con el codigo anterior se podria hacer????? ¿¿¿¿se podria especificar que quiero cambiar todo lo que haya hasta el ultimo "\"???? 2 ¿¿ se podria cambiar mas de una palabra en concreto con el mismo codigo anterior?? ejemplo para que me entendais mejor: @echo off setlocal enabledelayedexpansion for /f "tokens=* delims=" %%x in ('type nombre.txt') do ( set linea=%%x set linea=!linea: .avi .mpg .mkv=! call :show !linea! ) :show echo.%* >> nombre2.txt algo asi, que por ejemplo si se trata de una terminacion de archivo que no solo sea un tipo que sean todos los posibles. ojala me pudierais ayudar!!!!! espero que si no he puesto este mensaje en mal sitio no tengo ni idea, me acabo de registrar para ver si alguien me puede ayudar con esto, es el primer cuadro de texto que he visto. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 15 Enero 2012, 02:18 am Edita tu mensaje y pon el código con sus respectivas etiquetas para que se te pueda ayudar, o me veré en la penosa necesidad de eliminar el mensaje ya que no cumple las reglas (hay que leerlas).
Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Demente117 en 15 Enero 2012, 02:38 am PERDON por si me equivoko otra vez
documento original lo kreo haciendo un bat @echo off dir /b /s>Peliculas.txt lo ejecuto en la raiz de mi disco duro y me sale la lista que quiero, H:\Peliculas\El asesino del calendario .film H:\Peliculas\El guerrero n§ 13 .film H:\Peliculas\Harry Potter 7 .film H:\Peliculas\Ip man (Maestro y mentor de Bruce Lee) .film H:\Peliculas\Jugar duro .film H:\Peliculas\La Dama del Lago .film H:\Peliculas\La Saga Crepusculo .film H:\Peliculas\Mongol .film H:\Peliculas\Resacon 2 .film H:\Peliculas\A\Algo pasa en las Vegas .film H:\Peliculas\A\Ali G Anda suelto .film H:\Peliculas\A\Almas Condenadas .film H:\Peliculas\A\Amores Perros .film H:\Peliculas\A\Ana Karenina .film H:\Peliculas\A\Analfabeto .film H:\Peliculas\A\Angeles Caidos .film H:\Peliculas\A\Aprendiz de Brujo .film H:\Peliculas\A\Aprendiz de Caballero .film pero me gustaria que kedara asi El asesino del calendario .film El guerrero n§ 13 .film Harry Potter 7 .film Ip man (Maestro y mentor de Bruce Lee) .film Jugar duro .film La Dama del Lago .film La Saga Crepusculo .film Mongol .film Resacon 2 .film Algo pasa en las Vegas .film Ali G Anda suelto .film Almas Condenadas .film Amores Perros .film Ana Karenina .film Analfabeto .film Angeles Caidos .film Aprendiz de Brujo .film Aprendiz de Caballero .film quitando todas rutas de mis carpetas, mi problema es ese mismo tengo mi disco duro con una carpeta dentro que pone peliculas, y dentro de esta distribuida asi Peliculas // 0-9 0-9 Dibujos A A Dibujos B B Dibujos y mi segunda pregunta era esta @echo off setlocal enabledelayedexpansion for /f "tokens=* delims=" %%x in ('type Peliculas.txt') do ( set linea=%%x set linea=!linea:.avi.mpg.mp4.mpeg.mkv.film=! call :show !linea! ) :show echo. %* >> Peliculas3.txt perdon si me vuelvo a equivocar y no es esto lo que me estavas preguntando Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 15 Enero 2012, 03:05 am No, no es lo que te estaba diciendo, cuando uno se registra en un foro, debe de leerse las reglas del foro, y del subforo. Pero bueno, te la paso por esta vez, para la otra simplemente tu mensaje se eliminará.
Lo que te pedía es que el código debe de ponerse con su debido formato: echo hola Utilizando el GeSHi del editor de mensajes quedaría así: Código
Respecto al código, se puede utilizar algo así: Código
Siendo "c:\users\leo\batch\Peliculas" lo que tienes que cambiar a a la ruta donde están tus películas. Sobre tu segunda duda, no, no se puede, tienes que hacerlo uno por uno. Pon un ejemplo y lo resolvemos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Demente117 en 15 Enero 2012, 03:24 am Gracias, muchas gracias Leo, si funciona, ala perfeccion muxisimas gracias
perdon por mi ignorancia voy a leerme las normas, espero preguntar algo correctamente a la proxima. (si vuelvo a necesitar ayuda) de nuevo MUXISIMAS GRACIAS Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 15 Enero 2012, 03:27 am De nada. Saludos. :)
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Dany3j en 21 Enero 2012, 23:44 pm Hola a todos, tengo una duda al trabajar con archivos de texto.
Tengo dos .txt y quiero que se imprima un tercer .txt con la linea de la primero y segundo archivo, te ilustro un ejemplo. 1.txt Citar Palabra uno Palabra dos Palabra tres 2.txt Citar Verbo uno Verbo dos verbo tres Y de resultado en el Tercer txt quedaría así. 3.txt Citar Palabra uno Verbo uno Palabra dos Verbo dos Palabra tres Verbo tres Alguna soluciona para ello. Salu2 :huh: Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 22 Enero 2012, 23:03 pm Esto me funciona:
Código
Código
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Dany3j en 23 Enero 2012, 00:42 am Hola Leo gracias, también encontré esta solución.
Código: @echo off Salu2 :adios: Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 23 Enero 2012, 00:54 am Ya veo, la solución es mucho más corta, ya que usa arrays, en mi caso usé una pequeña función :D
Saludos Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Dany3j en 23 Enero 2012, 01:29 am Si me salio mas corto ;D Ademas es muy practico porque si se quiere agregar un documento de texto mas solo se debe crear otro array Voy a ver que as se me ocurre para que lo listemos en este tema.
También quería felicitarte por el gran trabajo que haces en este foro y en todos los otros. ;-) Salu2. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leb en 31 Enero 2012, 23:15 pm podrían ayudarme en el siguiente ejercicio?
Un bat que reproduzca una versión del cumpleaños feliz (por ejemplo en mp3) cuando el usuario que inicie la sesión cumpla años. Para ello, contamos con el fichero ‘Nacimientos.txt’ donde guardamos la fecha de nacimiento de cada usuario. El formato de cada entrada será: Lmartin:dd/mm/aaaa Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: lucaslopezld123 en 1 Diciembre 2012, 21:00 pm una facil:
como hago para quitar las ultimas dos lineas de un archivo (cualquiera sea su posicion) es decir no importa si el texto tiene 40 lineas o 4 quitarlas solo eso Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Segadorfelix en 1 Diciembre 2012, 22:32 pm Están excelentes los códigos.
Para crear un archivo de 0 kb, tambien se puede utilizar el comando color Código
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Segadorfelix en 1 Diciembre 2012, 23:42 pm podrían ayudarme en el siguiente ejercicio? Si el archivo tuviera "Lmartin dd/mm/aa"(con los espacios para que los lea for) podrías utilizar este código.Un bat que reproduzca una versión del cumpleaños feliz (por ejemplo en mp3) cuando el usuario que inicie la sesión cumpla años. Para ello, contamos con el fichero ‘Nacimientos.txt’ donde guardamos la fecha de nacimiento de cada usuario. El formato de cada entrada será: Lmartin:dd/mm/aaaa Código
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 2 Diciembre 2012, 02:51 am una facil: como hago para quitar las ultimas dos lineas de un archivo (cualquiera sea su posicion) es decir no importa si el texto tiene 40 lineas o 4 quitarlas solo eso ¿Es pregunta? Las cosas se piden por favor y aquí en el foro se intenta escribir bien, con buena ortografía. Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: lucaslopezld123 en 2 Diciembre 2012, 16:37 pm ¿Es pregunta? Las cosas se piden por favor y aquí en el foro se intenta escribir bien, con buena ortografía. Saludos. necesito quitar las ultimas dos lineas de un texto desde un .bat cual seria la forma correcta de hacerlo? debe funcionar independientemente de la cantidad de lineas que tenga el texto gracias Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 2 Diciembre 2012, 17:34 pm necesito quitar las ultimas dos lineas de un texto desde un .bat > [BATCH] [APORTE] Rutina TEXTMAN para manipular archivos de texto (http://foro.elhacker.net/empty-t372497.0.html) Código Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: lucaslopezld123 en 2 Diciembre 2012, 23:46 pm a textman hay que agregarlo?
trabajo con windows xp / 7 y 8 Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Segadorfelix en 3 Diciembre 2012, 04:30 am Si pero solo al archivo.
Resumiendo, lo que EleKtro H@cker intenta decir: Código
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 3 Diciembre 2012, 10:07 am Exacto, pero puedes cortar lo que no te interesa, como solo necesitas cortar lineas... :
(PD: Acabo de descubrir que precisamente había un fallo en la función de cortar las últimas líneas XD, pero ya lo he corregido) Código Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Segadorfelix en 4 Diciembre 2012, 22:48 pm Hola a todos y buenas tardes, me podrían ayudar, digamos que tengo un archivo, con el siguiente contenido:
Citar Palabra1 palabra2 palabra3 palabra4 palabra5 ¿como puedo leer el archivo y omitir las primeras dos palabras?Gracias. EDITO:Ya lo resolví, venia en batch avanzado, era esto: Código PD:XD Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 7 Diciembre 2012, 20:12 pm EDITO:Ya lo resolví, venia en batch avanzado, era esto: Código PD:XD Si lo prefieres todo en un único token: Código Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: lucaslopezld123 en 7 Diciembre 2012, 21:16 pm Si pero solo al archivo. Resumiendo, lo que EleKtro H@cker intenta decir: Código
perdon no entiendo, el archivo textman como lo consigo? donde lo pego? si mi texto se llama "repote.txt" cual seria la sintaxis para borrar las ultimas dos lineas? Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 7 Diciembre 2012, 21:48 pm @lucaslopezld123
Unos comentarios más arriba te explico cual es el código que debes usar. El archivo textman es ese, es una subrutina y se debe pegar al final de tu script batch. Exactamente lo que debes usar, como ya te expliqué, es esto: Código
Saludos Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: lucaslopezld123 en 16 Diciembre 2012, 22:17 pm @lucaslopezld123 Unos comentarios más arriba te explico cual es el código que debes usar. El archivo textman es ese, es una subrutina y se debe pegar al final de tu script batch. Exactamente lo que debes usar, como ya te expliqué, es esto: Código
Saludos Hola Muchas gracias por el aporte, consulta es posible que el codigo tenga algun fallo? no hace lo esperado elimina 4 lineas y mientras lo hace dice "...no puede encontrar la ubicacion" la ruta y nombre esta ok de hecho escribe los datos, solo que no borra lo que deberia. Gracias Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 17 Diciembre 2012, 10:58 am Es un fallo del foro al postear el código con formato "DOS", un error el cual nadie me hace caso y no lo arreglan xD Aqui tienes el código sin formato: Código: @Echo OFF Un saludo. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: maurorap en 17 Diciembre 2012, 23:02 pm Estimado:
Cuando trabajo con Edlin por ejemplo con este bloque de codigo Código este lo ocupo para reemplazar la linea 15 con el texto String fechaExpiracion = "%fechaCaducidadLicencia%"; Al final del archivo me genera una linea, que por ejemplo con notepad es un cuadrado ( al ingresarlo a google lo transforma en "?"). Como logro que no me ingrese esa linea despues de editar esa linea del archivo? ( en realidad lo hace al reemplazar cualquier linea) saludos y de antemano gracias!!! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: lucaslopezld123 en 22 Diciembre 2012, 16:40 pm quiero eliminar las ultimas dos lineas, ahora si funciona, pero luego todo el codigo en adelante no puede encontrar la ruta especificada.
que estoy haciendo mal? aqui esta el codigo Código: @ECHO OFF Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 22 Diciembre 2012, 17:34 pm quiero eliminar las ultimas dos lineas, ahora si funciona, pero luego todo el codigo en adelante no puede encontrar la ruta especificada. que estoy haciendo mal? No entendí bien tu problema, pero creo que he arreglado una errata en el TEXTMAN y te he mejorado el código en general, pruébalo, y si no te funciona explica mejor donde tienes problemas: Código: @ECHO OFF Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: lucaslopezld123 en 23 Diciembre 2012, 02:51 am MAESTRO!!!!!!!!!!
ALGUNAVEZ TE DIJERON QUE SOS MUY, PERO MUY GROSO!!!?? muchisimas gracias quedo perfecto! me encantaria saber que es eso de "2>NUL" un genio total usted! jeje :D Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Segadorfelix en 23 Diciembre 2012, 03:02 am me encantaria saber que es eso de "2>NUL" Redirige todos los errores a valor nulo.Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: lucaslopezld123 en 23 Diciembre 2012, 15:03 pm Buen dia Segadorfelix! no se si corresponde en este foro, pero ya que estuviste viendo el codigo de arriba te queria preguntar.
el diguiente pedacito del codigo es para determinar en que unidad se ecuentra mi pendrive codigo: for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (if exist "%%i:\INS\NINFUS" set "DRIVE=%%i:") anda muy bien, solo que si dejo una compactera abierta o hay una lectora de multimemoria, me tira el error "unidad no esta lista" o algo asi. doy enter y luego sigue. Con el uso de 2>nul se puede omitir ese error o hay algun otro metodo de deteccion? Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Segadorfelix en 23 Diciembre 2012, 15:13 pm Pues, lucaslopezld123 creo que se puede, pero me parece mas adecuado utilizar este metodo, oculta cualquier tipo de salida
Código: for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (if exist "%%i:\INS\NINFUS" set "DRIVE=%%i:")>NUL 2>&1 Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 23 Diciembre 2012, 15:27 pm @lucaslopezld123
es el subforo indicado, pero no el tema indicado, lee el título del tema: "Acciones sobre archivos de texto", debes crear un post para tu pregunta Saludos Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: lucaslopezld123 en 23 Diciembre 2012, 19:27 pm listo tema abierto, sigue fallando...
http://foro.elhacker.net/scripting/detectar_correctamente_unidad_de_un_pendrive-t379149.0.html Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: tienty en 23 Febrero 2013, 18:29 pm Hola! Soy nuevo en esto de Batch y me gustaría meter en una variable una cadena de texto de entre dos palabras/etiquetas que se encuentran en un archivo txt:
?id=xxxxxxxxxxx" Gracias por vuestra ayuda :) Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 24 Febrero 2013, 20:36 pm me gustaría meter en una variable una cadena de texto de entre dos palabras/etiquetas que se encuentran en un archivo txt: Enseña la línea en concreto. Código Donde "delims=" son los caracteres delimitadores. Ejemplo:
Código: <Version revision="82870"></Version>
Código: "82870" Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: ignorantev1.1 en 2 Marzo 2013, 04:33 am ¿Cómo poner la salida de algún programa de linea de comandos a un archivo?
No sé si me explico: Código
Si lo hago así, en salida.txt queda "miprograma.exe -suparametro" y no el resultado de la ejecución de miprograma.exe. (Nótese que miprograma.exe es un programa para linea de comandos) Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 2 Marzo 2013, 06:07 am @ignorantev1.1
El comando "Echo" es para escribir información en la pantalla, "MiPrograma.exe" no se llega a ejecutar, sólo lo escribes en la pantalla, y mucho menos vas a poder mostrar el output de un programa que no se ha ejecutado... en resumen, no uses "Echo". Código: miprograma.exe -suparametro >Salida.txt Esto es más que básico, deberías leer cualquier tutorial para principantes. Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: ignorantev1.1 en 2 Marzo 2013, 06:34 am Lo sé, el código sólo lo escribí para "darme a entender" con ustedes. ;)
¿Sí se entiende lo que pretendo hacer? Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 2 Marzo 2013, 08:56 am ¿Cómo poner la salida de algún programa de linea de comandos a un archivo? Código: miprograma.exe -suparametro >Salida.txt Vuelve a leer mi respuesta. Tutorial extendido de aprendizaje Batch by Elektro H@cker · 4.6 Operadores de desplazamiento lógico (o Redireccionamiento) (http://foro.elhacker.net/scripting/tema_bloqueado_hasta_finalizar_el_tuto_tutorial_extendido_de_aprendizaje_batch-t375135.0.html;msg1797941#msg1797941) Saludos Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: ignorantev1.1 en 2 Marzo 2013, 16:20 pm Pues no, ya lo intenté como sugeriste y no sirvió.
Bueno, déjalo, asumiremos que es imposible. Saludos y gracias. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 2 Marzo 2013, 16:49 pm El redireccionamiento funciona para TODOS los programas que séan CommandLine.
El problema que dices tener sólo puede ser una de estas dos razones:
En algunos programas la salida standard es la "2" por extraño que parezca (Por ejemplo en el FFMPEG), y en esos casos deberás hacer esto (Pruébalo): Código
De todas formas también puedes hacerlo con un FOR, AUNQUE ESTA MANERA ES MUY INCORRECTA (Porque con el redireccionamiento es suficiente, pero si dices que no te funciona...): Código Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Xwatmin en 19 Marzo 2013, 13:04 pm Buenos dias, os sigo desde hace tiempo y me ha surgido un problema que no encuentro solución.
Quiero crear un archivo bat que inicie una rom de un emulador, en este caso emulator model 2 de sega. He hecho lo mismo con 6 emuladores distintos y nunca he tenido problema, pero justo este emulador parece que no reconociera la ruta de la rom, tan sólo he conseguido abrir el emulador con el siguiente comando: @echo off start emulator.exe roms/daytona.zip Se que se puede lograr ya que he visto un portable de un emulador con una rom similar, pero por más que he probado y buscado, no doy con la solución. Ojala me podáis ayudar, saludos y muchas gracias. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 19 Marzo 2013, 13:26 pm @XWatmin
Acciones sobre archivos de texto. [Batch] ¿Que tiene que ver tu pregunta con la temática de este hilo? La máquina Arcade es la que se llama "Sega model 2", el emulador todavía no sabemos cual es su nombre, hay muchos emuladores que corren roms de la SM2. Infórmate sobre el nombre real del emulador que estás usando, después ve a la página oficial del emulador y descárgatelo, debe incluir un archivo de documentación y allí te debe indicar las opciones CommandLine del emulador para ejecutar una ROM, si la documentación no está en el emulador entonces debe estar en la página web oficial, así encontrarás lo que necesitas. De todas formas has puesto mal el slash (la barra vertical), prueba así: Código: Emulator.exe ".\roms\daytona.zip" Si te quedan dudas no sigas este tema aquí o me veré obligado a eliminarlo, haz el favor de crear un nuevo post para formular preguntas que no estén relacionadas con archivos de texto. Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: tienty en 1 Abril 2013, 22:44 pm Hola! Tengo un .txt con el siguiente formato:
Código: [FORMAT] ¿Cómo puedo añadir el contenido de una variable al .txt justo encima del [/FORMAT] (añadir una penúltima linea)? Gracias :) Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 3 Abril 2013, 15:21 pm Si el texto completo no contiene más tags podrías usar esto: http://foro.elhacker.net/empty-t372497.0.html para eliminar la última línea, y luego añadir el tag.
Ejemplo: Código: @Echo OFF De lo contrario, puedes usar un FOR /F para encontrar la cadena "[/FORMAT]" y reemplazarla por la variable y la cadena de nuevo. PD: Con ese script también puedes reemplazar palabras. Saludos Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Orni1 en 16 Abril 2013, 22:20 pm Hola no tengo mucha idea de esto por eso pido vuestra ayuda veréis:
Quisiera crear un bat que al ejecutarlo pida insertar un texto en la ventana y luego ese mismo texto se copie seguido sin espacio en todas las lineas del archivo de texto. Ejemplo: Tenemos el archivo file.txt con el contenido: manolo pepe juan antonio Ahora al ejecutar el archivo .bat se abre la ventana pidiendo ingresar el texto y ponemos el texto: tiene fruta De ese modo el archivo file.txt quedaría: manolotiene fruta pepetiene fruta juantiene fruta antoniotiene fruta Gracias por vuestro saber Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 16 Abril 2013, 22:32 pm ...Es decir: Como añadir un string al final de cada línea de un archivo de texto.
Pues así: Código Saludos! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Orni1 en 16 Abril 2013, 23:47 pm Lo que quiero es que en la ventana cmd pueda escribir el texto a añadir a todas las lineas del texto.
El que tu me pones la ventana cmd me pide el nombre del archivo de texto. La idea es que partiendo del archivo frutero.txt (u otro nombre) la ventana cmd pida el texto a añadir a las lineas de ese archivo de texto. Si no se puede con el que me das ya me apañaría editando el contenido de la linea Set "String= Lo que varia es el texto a añadir, el nombre del archivo puede ser siempre el mismo. Muchas gracias por tu rapidez. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 17 Abril 2013, 00:18 am Lo que quiero es que en la ventana cmd pueda escribir el texto a añadir a todas las lineas del texto. El que tu me pones la ventana cmd me pide el nombre del archivo de texto. La idea es que partiendo del archivo frutero.txt (u otro nombre) la ventana cmd pida el texto a añadir a las lineas de ese archivo de texto. Fíjate en el código, puedes pedir el texto a introducir exáctamente de la misma manera que se puede pedir el archivo de texto en el script que te he puesto de ejemplo. Te quise poner un ejemplo de las dos maneras. Código: Set /P /? Citar El modificador /P permite establecer el valor de una variable para una línea de entrada escrita por el usuario. Muestra la cadena del símbolo del sistema antes de leer la línea de entrada. La cadena del símbolo del sistema puede estar vacía. Saludos! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Orni1 en 17 Abril 2013, 00:36 am Gracias de nuevo eres un genio, seguro que para ti esto es pecata minuta pero a mi me cuesta mucho.
He estado enredando con los script que tienes publicados en el primer post y esto es un mundo. Un saludo Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 17 Abril 2013, 00:42 am pero a mi me cuesta mucho. De lo que se trata es de aprender poco a poco, con ejemplos pero sin que te lo den todo hecho, yo ya te dí casi todo hecho, solo hay que colocar cada cosa en su sitio :P. Intenta hacerlo y si aún no lo has conseguido postea el código que llevas y te lo corregiré en un Un saludo. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: .:: KsV ::. en 5 Mayo 2013, 06:16 am tengo un peqeño problema veran tengo un archivo con el contenido:
dfs gxcf gfbgf xcv adsa etc y quiero q qde me genere otro archivo con esta salida dfsgxcfgfbgfxcvadsaetc en pocas palabras q todas las lineas de un archivo queden en una sola linea Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 5 Mayo 2013, 18:23 pm Código: for /f "usebackq tokens=*" %%_ IN ("file.txt") do ( Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: .:: KsV ::. en 6 Mayo 2013, 00:33 am excelente muchas gracias Genio
;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) aprovechando tengo algo mas complejo creo yo tengo file.txt con esto sadv sd d sd as dsd d d s ds a sdsd sd d ad sdsd ect....dsf muchas mas lineas.... quiero q apartir de este archivo genere archivos file1.txt ,file2.txt,file3.txt..........ect cada archivo file1.txt ,file2.txt,file3.txt....... con parte del archivo file.txt algo asi file.txt archivo original sadv sd d sd as dsd d d s ds a sdsd sd d ad sdsd ect....dsf muchas mas lineas.... :____________ file1.txt sadv sd d sd _____________ file2.txt as dsd d d s ds _____________ file3.txt a sdsd sd d ad sdsd ect....dsf muchas mas lineas.... ________________ no inporta la cantidad de archivos q genere Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 6 Mayo 2013, 00:52 am Código: @echo off Te hacen falta unas clases de ortografía, más que de programación. Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: .:: KsV ::. en 6 Mayo 2013, 01:32 am jajajaj ya se
muchas gracias por el código y por el consejo de ortografía pero ese código solo toma la primer linea y crea un archivo con esa linea como se seria para que tomara mas lineas que tome unas 10 lineas Gracias SALUDOS Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 6 Mayo 2013, 01:35 am Lo hice así porque en ningún momento definiste con cuántas líneas había que crear el archivo o cuál sería el delimitador para saber cómo separar los archivos.
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: .:: KsV ::. en 6 Mayo 2013, 01:48 am siento diferir con tigo pero si lo hice ,puse un ejemplo , pero en parte también fue mi error
ejemplo file.txt archivo original sadv sd d sd as dsd d d s ds a sdsd sd d ad sdsd ect....dsf muchas mas lineas.... :____________ file1.txt sadv sd d sd _____________ file2.txt as dsd d d s ds _____________ file3.txt a sdsd sd d ad sdsd ect....dsf muchas mas lineas.... ________________ :D Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 6 Mayo 2013, 01:50 am Ajá, pero pones un ejemplo ...
¿Con cuántas líneas debe salir el primer archivo? y el segundo? el tercero? Especifícalo, no tenemos por qué estar adivinando. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: amslop en 3 Junio 2013, 12:56 pm Hola! Acabo de ver el articulo sobre "Acciones sobre archivos de texto" y la verdad que me ha ayudado bastante, pero no consigo encontrar una solución a lo que quiero hacer (es una practica que me han mandado para clase, pero no tengo idea de como hacerla):
Pidiendo una frase por teclado, buscar en dicha frase el una palabra que nos dan después. Había pensado meter la frase en una variable y luego, dentro de esa variable, cambiar los espacios por saltos de linea e introducirlo todo en un documento de texto. Muy bonito todo, pero no sé como meter una frase dentro de una variable ni como cambiar los espacios por saltos de línea. Espero que podáis ayudarme. Gracias :) Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: MauriH en 12 Septiembre 2013, 18:46 pm Hola Leo,
Me parece muy bueno el post, pero no encontré (o de pronto no me di cuenta) alguna consulta q se relacione con mi problema, verás tengo dos archivos, uno de ellos es un banco de preguntas (examen) tipo opción múltiple, cada pregunta tiene 5 opciones, y el otro archivo es el archivo de respuestas, donde estan listadas todas las respuestas en el orden en q aparece las preguntas en el archivo de preguntas. Lo q quiero saber es como puedo yo hacer para poder buscar por medio de un archivo .bat todo lo q esta en el archivo de respuestas en el archivo de preguntas e ir marcando esas coincidencias con una palabra clave, quisiera q esa palabra clave figure antes y despues de la opcion correcta. No es necesario una palabra clave para marcar cada una de las opciones correctas, esta bien, de hecho mejor si es la misma para todas las coincidencias, espero haberme explicado. Gracias. Te mando una parte de lo q seria el archivo de preguntas y de respuestas, estos son respectivamente: Archivo de preguntas:
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: pincharata en 12 Septiembre 2013, 21:18 pm Hola a todos, quisiera saber si pueden ayudarme con un archivo de texto donde todos los dias me dejan un log de la siguiente manera (aclaro que esta cortado pero tiene miles de filas):
name-label ( RW) : XXXX01 memory-actual ( RO): 3435969740 VCPUs-number ( RO): name-label ( RW) : Control domain on host: ZZZZ01 memory-actual ( RO): 78695628 VCPUs-number ( RO): os-version (MRO): in database name-label ( RW) : Control domain on host: ZZZZ02 memory-actual ( RO): 78695628 VCPUs-number ( RO): os-version (MRO): in database name-label ( RW) : XXXX02 memory-actual ( RO): 6871943168 VCPUs-number ( RO): name-label ( RW) : XXXX03 memory-actual ( RO): 6871943577 VCPUs-number ( RO): name-label ( RW) : XXXX04 memory-actual ( RO): 6871943168 VCPUs-number ( RO): Lo que necesito hacer es que elimine el salto de linea y lo remplace por una coma, a excepcion de las líneas que empiezan con "name-label", tras lo cual el archivo deberia de quedar: name-label ( RW) : XXXX01, memory-actual ( RO): 3435969740, VCPUs-number ( RO): name-label ( RW) : Control domain on host: ZZZZ01, memory-actual ( RO): 78695628, VCPUs-number ( RO): , os-version (MRO): in database name-label ( RW) : Control domain on host: ZZZZ02, memory-actual ( RO): 78695628, VCPUs-number ( RO): , os-version (MRO): in database name-label ( RW) : XXXX02, memory-actual ( RO): 6871943168, VCPUs-number ( RO): name-label ( RW) : XXXX03, memory-actual ( RO): 6871943577, VCPUs-number ( RO): name-label ( RW) : XXXX04, memory-actual ( RO): 6871943168, VCPUs-number ( RO): Gracias a un aporte de Leo Gutierrez logro quitar el salto con el codigo: Código: for /f "tokens=*" %%_ in (file.txt) do (<nul set /p "=%%_ "; >> listar2.txt) Muchas gracias. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 13 Septiembre 2013, 04:33 am @pincharata
A ver si te funciona esto. Código
También podrías utilizar un script en Powershell: Código
@MauriH Lo verifico esta noche y te comento qué tal. Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 13 Septiembre 2013, 07:31 am Hola Leo, Me parece muy bueno el post, pero no encontré (o de pronto no me di cuenta) alguna consulta q se relacione con mi problema, verás tengo dos archivos, uno de ellos es un banco de preguntas (examen) tipo opción múltiple, cada pregunta tiene 5 opciones, y el otro archivo es el archivo de respuestas, donde estan listadas todas las respuestas en el orden en q aparece las preguntas en el archivo de preguntas. Lo q quiero saber es como puedo yo hacer para poder buscar por medio de un archivo .bat todo lo q esta en el archivo de respuestas en el archivo de preguntas e ir marcando esas coincidencias con una palabra clave, quisiera q esa palabra clave figure antes y despues de la opcion correcta. No es necesario una palabra clave para marcar cada una de las opciones correctas, esta bien, de hecho mejor si es la misma para todas las coincidencias, espero haberme explicado. Gracias. Te mando una parte de lo q seria el archivo de preguntas y de respuestas, estos son respectivamente: Archivo de preguntas:
Hola @MauriH ¿Podrías por favor un ejemplo de cómo quisieras la salida del archivo final o de lo que quisieras obtener? Es que no me queda claro como quieres relacionar el archivo de preguntas y de respuestas con un archivo final. Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: pincharata en 13 Septiembre 2013, 14:50 pm @pincharata A ver si te funciona esto. Código
También podrías utilizar un script en Powershell: Código
@MauriH Lo verifico esta noche y te comento qué tal. Saludos. Leo, muchas gracias, pero lo acabo de ejecutar y verificar con mayor detenimiento y veo que repite en la salida el resultado de la búsqueda "name", por más que intento entender y modificar el script estoy muy lejos de ello y no logro corregirlo... lamento molestarte nuevamente a ver si podrás ayudarme. Utilizo el script en batch por que el de powershell no me funcionó en absoluto (la salida es por pantalla y no escribe en ningún archivo, puede ser?). La salida final que obtengo es: Citar name-label ( RW) : XXXX01 , name-label ( RW) : XXXX01 , memory-actual ( RO): 3435969740 , VCPUs-number ( RO): name-label ( RW) : Control domain on host: ZZZZ01 , name-label ( RW) : Control domain on host: ZZZZ01 , memory-actual ( RO): 78695628 , VCPUs-number ( RO): , os-version (MRO): in database name-label ( RW) : Control domain on host: ZZZZ02 , name-label ( RW) : Control domain on host: ZZZZ02 , memory-actual ( RO): 78695628 , VCPUs-number ( RO): , os-version (MRO): in database name-label ( RW) : XXXX02 , name-label ( RW) : XXXX02 , memory-actual ( RO): 6871943168 , VCPUs-number ( RO): name-label ( RW) : XXXX03 , name-label ( RW) : XXXX03 , memory-actual ( RO): 6871943577 , VCPUs-number ( RO): name-label ( RW) : XXXX04 , name-label ( RW) : XXXX04 , memory-actual ( RO): 6871943168 , VCPUs-number ( RO): Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: togangel en 15 Septiembre 2013, 11:33 am Hola a todos un gran saludo, los felicito por este tutorial en el cual me he basado en aprender un poco de este tema. Sin embargo tengo una consuta que hacerles, ya que he buscado por todos lados y no logro encontrarlo ya que estoy chamaco en esto.
Estoy buscando un Batch más reducido en el cual se este automatizando algunas configuraciones en el equipo, por ejemplo tengo este: Código:
Aquí lo que estoy intentando es que al checar en Tasklist se encuentren los programas ejecutando, en caso contrario Tener la opción de Instalarlo desde un directorio en C:\bla\bla.exe. Sí me funciona muy bien este Batch que he hecho pero... La cuestión es si en la variable :fin se puede simplificar con algun for o tomar el nombre del programa y usarlo como una variable, ya que siento que esta muy extenso. Así mismo si se tomara como variable utilizarlo despues para otros usos, un ejemplo. Terminar con procesos no deseados Sin más por el momento, me gustaria tener algo de ayuda Genios!!! Muchas Gracias. Título: Hacer batch para Publicado por: Pédrin-2 en 15 Septiembre 2013, 16:50 pm Hola soy nuevo en esto, y quiero aprender lo veo muy interesante.
Lo que necesito creo que no es dificil, despues de ver por encima lo que se hace. Lo explico: Dentro de una carpeta tengo todo tipo de archivos, desde .avi, .flv, xls, etc.. que al ejecutar el batch me creara una carpeta " extensiones" y dentro creara por cada archivo real ( ejemplo: video 1.avi ) un ( txt ), pero con la misma extension del original Evidentemento el archivo creado no se vera nada, tamaño en carpeta 0. No se si me he explicado bien Un saludo y espero que podais ayudar a un novato Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 15 Septiembre 2013, 18:55 pm Hola soy nuevo en esto, y quiero aprender lo veo muy interesante. Lo que necesito creo que no es dificil, despues de ver por encima lo que se hace. Lo explico: Dentro de una carpeta tengo todo tipo de archivos, desde .avi, .flv, xls, etc.. que al ejecutar el batch me creara una carpeta " extensiones" y dentro creara por cada archivo real ( ejemplo: video 1.avi ) un ( txt ), pero con la misma extension del original Evidentemento el archivo creado no se vera nada, tamaño en carpeta 0. No se si me he explicado bien Un saludo y espero que podais ayudar a un novato Hola @Pédrin-2, por favor deja un ejemplo de salida. O sea, déjame un ejemplo hipotético de cómo quedaría, por que la verdad no te he entendido esta parte: Citar dentro creara por cada archivo real ( ejemplo: video 1.avi ) un ( txt ), pero con la misma extension del original ¿¿Cómo que un archivo txt pero con la misma extensión del archivo original? ¿Te refieres a que se crearía un archivo igual que el original pero vacío? Si es así esto podría servir: Código
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Pédrin-2 en 16 Septiembre 2013, 10:35 am Hola Leo muchisimas gracias por ayudarme.
Tengo una carpeta: Mis Peliculas, dentro hay: spìderman.avi = 700 mb cars.avi = 700 mb foto1.jpg = 6 mb, etc... el resultado dentro de esa misma carpeta seria: Carpeta: Extensiones dentro: spìderman.avi = 0 mb cars.avi = 0 mb foto1.jpg = 0 mb, etc... Espero que se me entienda. El ejemplo que me pones me crea dos carpetas una llamada trunk que no es necesaria y la otra de extensiones es la que necesito, pero el bat me dice que no encuentra nada. Un saludo Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 16 Septiembre 2013, 17:28 pm Lo que yo no entiendo es: ¿En la carpeta "Extensiones" deben ir todos los archivos sin importar la extension?, si fuese así entonces que le encuentras de beneficioso?, sería simplemente una copia nula (tamaño cero) de los mismo archivos.
¿O acaso quieres un txt por cada extension?, dentro de la carpeta "Extensiones". Hice este código que genera una carpeta "Extensiones" por cada directorio y subdirectorio, dentro de la carpeta "Extensiones" se genera una serie de archivos "LOG" con el nombre de cada extension (Ejemplo: .avi.log), y dentro de cada archivo log están registrados los archivos de dicha extension. Código Saludos Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 16 Septiembre 2013, 17:50 pm Código
Prueba ese código, el .bat tiene que estar en el mismo directorio donde están tus .xls, .avi, .flv, etc. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Pédrin-2 en 16 Septiembre 2013, 18:52 pm Fantastico Leo justo lo que necesitaba
Hola EleKtro H@cker, gracias por tu interes. Un Saludo a los dos Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: MauriH en 17 Septiembre 2013, 21:10 pm Hola @MauriH ¿Podrías por favor un ejemplo de cómo quisieras la salida del archivo final o de lo que quisieras obtener? Es que no me queda claro como quieres relacionar el archivo de preguntas y de respuestas con un archivo final. Saludos. Hola Leo, en mi anterior consulta te puse el ejemplo del archivo final, de pronto no lo viste por q esta todo muy junto, aqui te lo pongo de nuevo: Archivo de preguntas: 1. El masaje cardiaco externo: • No se realiza en recién nacidos • Se realiza en la mitad superior del esternón en el adulto • Produce un flujo sanguíneo 25 % del normal • No esta indicado en la fibrilación ventricular sostenida • Todas las anteriores 2. La administración intracardiaca de drogas durante RCP: • Requiere mayor dosis de drogas • Puede producir lesión irreversible en el corazón • Es la vía de elección en la reanimación a tórax abierto • La vía de abordaje es paraesternal izquierda • Todas son ciertas 3. La adrenalina: • Posee efecto beta predominante • Se sintetiza en el hígado • Tiene mayor efecto en la acidosis metabolica • Aumenta la presión de perfusión durante la RCP • Todas 4. Para diagnosticar la circulación ineficaz: • El ECG es el método de elección • Palpar el pulso en la arteria femoral o carótida • Se han descrito alteraciones en el metabolismo de los ácidos grasos libres • Ausencia de reflejos fotomotores • Todas 5. En la evaluación preoperatoria de un paciente ASA I de 30 años es indispensable: • Solicitar un ECG de rutina • Abetalipoproteinemia • Realizar un examen clínico completo • Solicitar un coagulograma de rutina • Todas Archivo de respuestas: Respuesta de la pregunta 1 :• Todas las anteriores Respuesta de la pregunta 2 :• Todas son ciertas Respuesta de la pregunta 3 :• Se sintetiza en el hígado Respuesta de la pregunta 4 :• Se han descrito alteraciones en el metabolismo de los ácidos grasos libres Respuesta de la pregunta 5 :• Abetalipoproteinemia Nota. El texto q aparece en cursiva, realmente no aparece en mis archivos de texto, solo lo puse de un modo aclaratorio. Archivo Final 1. El masaje cardiaco externo: • No se realiza en recién nacidos • Se realiza en la mitad superior del esternón en el adulto • Produce un flujo sanguíneo 25 % del normal • No esta indicado en la fibrilación ventricular sostenida • monordi1Todas las anterioresmonordi2 2. La administración intracardiaca de drogas durante RCP: • Requiere mayor dosis de drogas • Puede producir lesión irreversible en el corazón • Es la vía de elección en la reanimación a tórax abierto • La vía de abordaje es paraesternal izquierda • monordi1Todas son ciertasmonordi2 3. La adrenalina: • Posee efecto beta predominante • monordi1Se sintetiza en el hígadomonordi2 • Tiene mayor efecto en la acidosis metabolica • Aumenta la presión de perfusión durante la RCP • Todas 4. Para diagnosticar la circulación ineficaz: • El ECG es el método de elección • Palpar el pulso en la arteria femoral o carótida • monordi1Se han descrito alteraciones en el metabolismo de los ácidos grasos libresmonordi2 • Ausencia de reflejos fotomotores • Todas 5. En la evaluación preoperatoria de un paciente ASA I de 30 años es indispensable: • Solicitar un ECG de rutina • monordi1Abetalipoproteinemiamonordi2 • Realizar un examen clínico completo • Solicitar un coagulograma de rutina • Todas La idea es leer una por una las líneas de un archivo (el archivo de respuestas) y buscarlas en otro archivo (el archivo de preguntas) y poner una palabra delante y otra detras de cada coincidencia. Por si acaso uso Windows7, gracias de antemano. Un saludo. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 23 Septiembre 2013, 20:33 pm @MauriH
Código PD: Antes de usar haz una copia del archivo original por precaución. Saludos! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: MauriH en 24 Septiembre 2013, 00:47 am @MauriH Código PD: Antes de usar haz una copia del archivo original por precaución. Saludos! Hola, me parece muy bueno el codigo, gracias por la pronta respuesta ;-), nada más tengo el problema de q busca cada linea del archivo de respuestas en todo el archivo de preguntas y marca todas las coincidencias, y eso no es bueno ya q muchas veces las opciones se repiten en varias preguntas (por ejemplo la ultima opción en las preguntas 3, 4 y 5) y no necesariamente son correctas todas, eso provoca q se marquen 2 o más opciones como correctas. Lo q quisiera es q una vez q encontró una coincidencia ya no siga buscando y pase a buscar la siguiente linea del archivo de respuestas, en el archivo de preguntas, pero q continue buscando a partir de donde se quedó en archivo de preguntas y no desde el principio. No sé si me explique correctamente y tampoco sé si tal cosa es posible, espero vuestras respuestas. Muchas gracias por la ayuda. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 24 Septiembre 2013, 08:34 am @MauriH
Es decir, por poner un ejemplo, si tienes un archivo de preguntas de 200 lineas, y un archivo de respuestas con dos respuestas (2 lineas) donde la primera coincidencia de la primera respuesta (linea 1) coincide con la linea 190 del archivo de preguntas, ¿entonces la respuesta 2 debería empezar a buscar desde esa linea 190?. Saludos Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: MauriH en 24 Septiembre 2013, 16:35 pm @EleKtro H@cker
Pues verás básicamente si, esa es una de las ideas q tuve para evitar q se marcaran por error dos opciones como correctas en una misma pregunta. La otra idea es q una vez q sea encontrada una coincidencia en el archivo de preguntas, ya no siga buscando, por que ahorita eso es lo q hace, busca una linea en todo el archivo de preguntas y marca todas las coincidencias q encuentra, pero yo quisiera q solo marque la primera y así se evitaría marcar otras opciones q no son correctas, y si se podría hacer q la segunda linea del archivo de preguntas comenzase a buscar partir de la coincidencia marcada por la primera seria genial, bueno eso es lo q se me ocurrió, pero en verdad no pude lograrlo escribiendo código, recién llevo poco tiempo practicando batch. Es q como te dije hay muchas opciones q se repiten en el archivo de preguntas y no necesariamente son correctas. Hay q tener en cuenta q todas las preguntas tienen una sola opción correcta y q hay exactamente la misma cantidad de preguntas en el archivo de preguntas como lineas en el archivo de respuestas, por ejemplo si tengo 600 preguntas, tengo 600 respuestas (en 600 lineas) y estas están en el mismo orden. :¬¬ Gracias. PD. Te parece si te envío los archivos de preguntas y respuestas para q puedas ver su estructura? Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 24 Septiembre 2013, 17:20 pm no pude lograrlo escribiendo codigo Es facil, simula una variable Booleana para usarla como Flag: Código Saludos! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: MauriH en 24 Septiembre 2013, 18:28 pm @EleKtro H@cker
Siento decirte q aun no me funciona como quisiera, me sigue marcando varias opciones como correctas en la misma pregunta, y algunas no me marco nada. Pienso q de pronto lo q esta haciendo es buscar la primera linea, encuentra la coincidencia y luego busca la segunda linea a partir de la primera coincidencia marcada, pero la tercera q deberia buscar a partir de la 2 coincidencia marcada sigue buscando a partir de la primera, no sé si me equivoco, pero aun estoy en problemas. Gracias por el interés, pero aún no doy con la solución, espero tu puedas. :-[ Modifico: Bueno acabo de revisar minuciosamente lo q hizo el codigo y me di cuenta de dos cosas, hizo lo q te dije en mi parrafo anterior, y la otra es q al parecer esto del Batch da para mucho, así q tuve una nueva idea para q eso no vuelva suceder, idea q por supuesto no podré lograr sin tu ayuda. Así q aqui te adjunto una extracto de ambos archivos tal y como son: Preguntas.txt #En la evaluación preoperatoria de un paciente ASA I de 30 años es indispensable: • Solicitar un ECG de rutina • Rx de tórax • Realizar un examen clínico completo • Solicitar un coagulograma de rutina • Todas #La detención súbita y completa de circulación se expresa: • Midriasis a los 60 seg. • Por pCO2 en sangre arterial baja • Por acumulo de acido láctico en los tejidos periféricos • Respiración boqueante o apnea • Todas #El masaje cardiaco externo puede producir un cierto grado de flujo sistémico y pulmonar por: • Acción de la bomba cardiaca y torácica durante las compresiones • Diferencias de presión entre la aurícula y el ventrículo • Diferencias de presión aortico pulmonares • Mecanismo valvular aortico • Ninguna #Cual es la conducta terapéutica en UTI en el síndrome de Stokes Adams: • Atropina • Beta adrenergicos • Inserción de marcapaso definitivo • Isoproterenol • Todas #La toxicidad de los anestésicos locales por lo general se debe: • Uso de concentraciones altas de anestésicos • Absorción rapida en un sitio vascularizado • Inyección intravascular inadvertida • Al uso de dosis excesivas • Todas Respuestas.txt • Realizar un examen clínico completo • Todas • Acción de la bomba cardiaca y torácica durante las compresiones • Isoproterenol • Todas Mi Archivo de salida fue: #En la evaluación preoperatoria de un paciente ASA I de 30 años es indispensable: • Solicitar un ECG de rutina • Rx de tórax nothing• Realizar un examen clínico completonothing • Solicitar un coagulograma de rutina nothing• Todasnothing #La detención súbita y completa de circulación se expresa: • Midriasis a los 60 seg. • Por pCO2 en sangre arterial baja • Por acumulo de acido láctico en los tejidos periféricos • Respiración boqueante o apnea nothing• Todasnothing #El masaje cardiaco externo puede producir un cierto grado de flujo sistémico y pulmonar por: nothing• Acción de la bomba cardiaca y torácica durante las compresionesnothing • Diferencias de presión entre la aurícula y el ventrículo • Diferencias de presión aortico pulmonares • Mecanismo valvular aortico • Ninguna #Cual es la conducta terapéutica en UTI en el síndrome de Stokes Adams: • Atropina • Beta adrenergicos • Inserción de marcapaso definitivo nothing• Isoproterenolnothing • Todas #La toxicidad de los anestésicos locales por lo general se debe: • Uso de concentraciones altas de anestésicos • Absorción rapida en un sitio vascularizado • Inyección intravascular inadvertida • Al uso de dosis excesivas • Todas Archivo Final requerido: #En la evaluación preoperatoria de un paciente ASA I de 30 años es indispensable: • Solicitar un ECG de rutina • Rx de tórax nothing• Realizar un examen clínico completonothing • Solicitar un coagulograma de rutina • Todas #La detención súbita y completa de circulación se expresa: • Midriasis a los 60 seg. • Por pCO2 en sangre arterial baja • Por acumulo de acido láctico en los tejidos periféricos • Respiración boqueante o apnea nothing• Todasnothing #El masaje cardiaco externo puede producir un cierto grado de flujo sistémico y pulmonar por: nothing• Acción de la bomba cardiaca y torácica durante las compresionesnothing • Diferencias de presión entre la aurícula y el ventrículo • Diferencias de presión aortico pulmonares • Mecanismo valvular aortico • Ninguna #Cual es la conducta terapéutica en UTI en el síndrome de Stokes Adams: • Atropina • Beta adrenergicos • Inserción de marcapaso definitivo nothing• Isoproterenolnothing • Todas #La toxicidad de los anestésicos locales por lo general se debe: • Uso de concentraciones altas de anestésicos • Absorción rapida en un sitio vascularizado • Inyección intravascular inadvertida • Al uso de dosis excesivas nothing• Todasnothing Mi idea es la siguiente: Como ves todas las opciones comienzan con una Viñeta (•), las preguntas en cambio tienen el simbolo numeral (#). Entonces quisiera poder hacer q el batch busque la primera linea de Respuestas.txt en Preguntas.txt, desde la primera linea q comience con #, y marque la primera coincidencia, luego q busque la segunda linea de Respuestas.txt desde la 2° linea q comience con # en preguntas.txt, y luego la tercera y así sucesivamente. Gracias por toda la ayuda, disculpa las molestias, te estaré eternamente agradecido. Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 24 Septiembre 2013, 18:53 pm @MauriH
Lo que hace el código es: por cada respuesta, procesa cada linea del archivo de preguntas y las va escribiendo a un archivo temporal (esto usando Batch se debe hacer así, linea por linea, es un lenguaje muy limitado) si en el proceso encuentra una coincidencia (una y no más), es decir, si encuentra una linea de respuesta que sea exáctamente IGUAL que la linea de la pregunta, entonces le agrega el sufijo y prefijo a la linea de la pregunta, de lo contrario escribe la linea tal cual al finalizar de procesar la respuesta, el archivo original se reemplaza por el archivo temporal para que el texto se actualice, y sigue con la siguiente respuesta, empezando a buscar desde la primera linea de preguntas. si tenemos estos prefijos: Código: hola y un archivo respuestas con este contenido: Código: a y un archivo de preguntas con este otro contenido: Código: a Al ejecutar el code, este será el resultado: Código: holaaadios Si no es eso lo que buscas, no lo he entendido bien, Saludos! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: MauriH en 24 Septiembre 2013, 19:29 pm @EleKtro H@cker
Entiendo lo q dices, hice una modificación de mi anterior comentario, una muy pequeña, leelo y dime q opinas, gracias de nuevo. Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 25 Septiembre 2013, 19:56 pm leelo y dime q opinas, gracias de nuevo. Pues para ser sincero opino que aunque estemos en un hilo de Batch, cualquier otro lenguaje es más viable para hacer esa tarea que Batch, así que en caso de hacerlo, lo haré en otro lenguaje. EDITO: Ya tengo la solución, pero lo hice en VB.NET así que te mando un privado para no desvirtuar el tema Batch. . Lo que hice básicamente fue : 1. Delimitar el texto de las preguntas (splitear) usando como caracter el caracter inicial de cada pregunta (#) y agregar los "bloques" a un Array, y así cada item del Array debería contener el título de la pregunta y las 5 respuestas (o las que sean) de dicha pregunta. 2. Realizar el mismo procedimiento con el archivo de respuestas, y asi, en cada item del Array debería haber una sola respuesta. 3. Luego símplemente hay que procesar el Array de respuestas de inicio a fín para hacer un reemplazamiento de string en el mismo índice de Item del Array de preguntas, ya que es óbvio que no va a haber dos respuestas iguales en la misma pregunta. Saludos! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: gustavo2713 en 8 Octubre 2013, 20:31 pm Hola Leo: tengo un txt
000659 05203996601 6600011 1 001 010813 050960 61083359502 6611801 1 001 010813 050960 61083359502 6600011 1 001 010813 050005 61630799201 6604131 1 001 020813 050005 61630799201 6608651 1 001 020813 y necesito filtrar y separar por los número de la primera columana, de manera de obtener: 000659 05203996601 6600011 1 001 010813 ---> txt 1 050960 61083359502 6611801 1 001 010813 ---> txt 2 050960 61083359502 6600011 1 001 010813 050005 61630799201 6604131 1 001 020813 ---> txt 3 050005 61630799201 6608651 1 001 020813 Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: MauriH en 13 Octubre 2013, 01:24 am Ayuda, tengo una consulta, por favor,
Como podría hacer con un batch reemplazar una palabra por una secuencia de números, por ejemplo si quiero reemplazar la palabra "amigo": Texto de entrada: texto texto texto amigo texto y más texto texto amigo texto y más textoamigo amigotexto y más texto. Salida: texto texto texto 0001 texto y más texto texto 0002 texto y más texto0003 0004texto y más texto. Gracias, Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 13 Octubre 2013, 03:03 am Si sólamente se trata de modificar UNA palabra, entonces lo más sencillo es partir el string en un array y hacer un reemplazamiento de string con las cadenas que coincidan, cada uno de los items del array sólamente contendrá una palabra.
Si se quiere modificar más de una palabra entonces yo usaría expresiones regulares. Recordemos que para hacer la secuencia numérica hay que manipular una variable de tipo String donde deberiamos agregarle "X" cantidad de ceros a la izquierda (Ej: "0001"). Esto es facil de hacer, pero no recomiendo llevar esto a cabo usando Batch, aunque cualquier usuario es libre de proporcionarte una solución, a ver si el compañero moderador Leo se anima. Saludos! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: fido28 en 15 Octubre 2013, 23:31 pm Hola:
Me gustaria saber si me pueden ayudar necesito crear un archivo BAT que se ejecute un programa determinado por decir el excel pero que al iniciar se inicie como otro usuario y que ademas este oculto para que los usuarios no vean el login del BAT. He investigado un poco creando el BAT y despues se puede pasar a un EXE para que no se visualice pero no logro hacerlo funcionar. Código: -u usuario -p password "%ProgramFiles%\Microsoft Office\Office14\EXCEL" Ojala se pueda me encantaria saber GRACIAS de antemano. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 16 Octubre 2013, 07:16 am @fido28
La temática de este hilo trata sobre maniuplación de archivos de texto, para el resto de dudas, formula un nuevo post. 1. Lo más parecido a técnicas de Impersonation en Batch, es usando el comando RunAs. En consola: Código: RunAs /? 2. Puedes convertir un script bat a EXE con ExeScript Editor. Saludos Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: eternus1492 en 21 Octubre 2013, 10:26 am Hola que tal, me gustaría saber si me podeis echar una mano para crear un archivo .bat que realice lo siguiente:
Tengo por un lado un fichero maquinas.txt con este contenido: Código: amon,osiris,tutatis,heman,skeletor y por otro lado tengo un fichero config.txt con este contenido: Código: ** Configuración General del Cliente ** Lo que necesitaria es hacer un bat que coja la lista de máquinas del primer fichero: Código: amon,osiris,tutatis,heman,skeletor y la ponga en la parte Código: vm=vm1,vm2,vm3; del segundo fichero, para que quede de esta forma Código: vm=amon,osiris,tutatis,heman,skeletor; Un saludo cordial. [MOD]: Utiliza el botón de insertar código para insertar código o contenido de texto Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: vicox19 en 10 Diciembre 2013, 17:02 pm tengo el siguiente caso.
todos los dias tengo que instalar un programa en mi empresa y necesito cambiar el numero de la version en 10 archivos de textos diferentes. por ejemplo: version de ayer: 1.1.20 version de hoy: 1.1.21 el instalador se encuentra hubicado digamos en C:\instaladores hoy quiero instalar la version actual y para eso tengo que abrir 10 diferentes archivos de texto hubicados en el mismo folder. Dentro el archivo hay un parametro VERSION ACTUAL: 1.1.20 (que es la version de ayer) quisiera saber con un archivo BATCH puedo hacer que me pase lo siguiente al ejecutar el BATCH: cual es la version actual?: 1.1.21 abrir archivo1.txt reemplazar 1.1.20 por 1.1.21 abrir archivo2.txt reemplazar 1.1.20 por 1.1.21 abrir archivo3.txt reemplazar 1.1.20 por 1.1.21 ..... abrir archivo10.txt reemplazar 1.1.20 por 1.1.21 es posible??? Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 10 Diciembre 2013, 17:38 pm @vicox19
Claro, solo se necesita lo siguiente:
Se necesita que especifiques eso claramente para empezar a trabajar. Sé que quizás ya lo has hecho anteriorente, pero no encuentro claro tu mensaje, así que por favor corrigelo. Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: vicox19 en 10 Diciembre 2013, 17:57 pm ok, tratare de ser mas especifico.
archivo que quiero que se modifique: city1.txt contenido: .....codigo...... ##Other Properties # zipFileSourcePath=\\server1\BuildArchive\1.01\build_1.01.20.zip .....codigo...... como este archivo tengo de 10 ciudades diferentes. city2, city3....city10 lo que quiero es que al correr el batch me pregunte: CUAL ES LA VERSION DEL NUEVO BUILD DE HOY?: yo inserte: 1.01.21 ese NUEVO numero tiene que ser reemplazado en los 10 archivos SOLO la parte del numero. osea, lo que espero que es que el city1.txt termine asi: .....codigo...... ##Other Properties # zipFileSourcePath=\\server1\BuildArchive\1.01\build_1.01.21.zip .....codigo...... y haga lo mismo en los otros 10 archivos city2.txt, city3.txt.....city10.txt Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 10 Diciembre 2013, 18:44 pm Bien, hice esto rápido.
Hice una carpeta con los siguientes archivos: Código: archivo1.txt El interior del archivo de cada uno es el siguiente: archivo1.txt: Código: .....codigo...... Y así para todos. El código del batch es el siguiente: Código: @echo off Esta es una corrida y lo que realiza sobre un archivo: Código: C:\Users\Leo\Desktop\Baúl\Batch>code.cmd Salida de los archivos: Código:
Antes de probarlo realiza un respaldo de los archivos donde vas a hacer el reemplazo. Usalo bajo tu propio riesgo. Advertencia: El código batch se basa en la línea que comienza: Código: zipFileSourcePath=\\server1\BuildArchive\1.01\build_1.2.3.4.56.zip Así que procura que solo haya el que está enseguida de build_. Saludos. >:D Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: vicox19 en 10 Diciembre 2013, 19:54 pm :xD yeah!!!
si funciona!! eres un genio. si hace el cambio en el numero de version, pero me sale un error de comando SWIFT y tuve que cambiar la variable que definiste por que no reconocia: de: set "instaladores_path=.\instaladores" a: set "instaladores_path=C:\instaladores" pero a pesar del error si hace el cambio de version. quizas se deba a mi version de windows? win7 o nose... corrida: C:\instaladores>test.bat Cual es la versi≤n del build actual? 10.00.00.1188 'Swift' is not recognized as an internal or external command, operable program or batch file. 1 file(s) copied. 'Swift' is not recognized as an internal or external command, operable program or batch file. 1 file(s) copied. 'Swift' is not recognized as an internal or external command, operable program or batch file. 1 file(s) copied. 'Swift' is not recognized as an internal or external command, operable program or batch file. 1 file(s) copied. 'Swift' is not recognized as an internal or external command, operable program or batch file. 1 file(s) copied. y si no es mucha molestia. supongo que sobre el mismo codigo se puede modificar algo para lograr lo siguiente. una vez que actualizo las versiones y lanzo los instaladores UNO POR UNO, a veces falla el instalador. cuando falla tengo que abrir el mismo archivo y cambiar un setting: de: failOnSQLError=true a: failOnSQLError=false y volver a lanzar para que esta vez A PESAR DEL ERROR instale el programa. Basicamente lo mismo del anterior caso solo que es en otra parte dentro el archivo donde se hace el cambio a FALSE. MIL GRACIAS DE ANTEMANO! me ayudaste a optimizar de gran manera mi trabajo, por que si me olvidaba cambiar la version de un archivo y lanzaba el instalador con un build anterior, era todo un problema jeje, y esto es TODOS LOS DIAS :P Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 10 Diciembre 2013, 20:06 pm Coloca por favor el batch que utilizaste con las últimas modificaciones, para ver si localizo el error.
Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: vicox19 en 10 Diciembre 2013, 20:14 pm Código: @echo off Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: leogtz en 10 Diciembre 2013, 20:41 pm @vicox19
¿Cómo lanzas un instalador? Deja por favor un ejemplo. Citar una vez que actualizo las versiones y lanzo los instaladores UNO POR UNO, a veces falla el instalador. cuando falla tengo que abrir el mismo archivo y cambiar un setting: de: failOnSQLError=true a: failOnSQLError=false ¿Con abrir el mismo archivo te refieres al archivo al cuál se le ha modificado la versión? Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: vicox19 en 10 Diciembre 2013, 21:04 pm este es el proceso completo:
en mi folder instaladores tengo: archivo1.txt archivo1.bat archivo10.txt archivo10.bat archivo2.txt archivo2.bat .....(1 bat para cada TXT) los archivos .bat basicamente lo que hacen es ejecutar el instalador indicando que lea la configuracion definida en archivo.txt correspondiente. Obviamente el archivo de configuracion tiene muchas cosas, pero a mi solo me interesa trabajar en los 2 campos que te explico abajo. entonces, como cada dia sale un nuevo bulid, tengo que abrir el archivo de config del instalador y cambiar a la version del nuevo build. .....codigo...... ##General Properties failOnSQLError=true .....codigo...... ##Other Properties # zipFileSourcePath=\\server1\BuildArchive\1.01\build_563456.zip .....codigo...... con el primer codigo que hiciste TODO OK, el numero de version cambia. en caso de que la instalacion falle, tengo que volver a abrir el archivo de configuracion y cambiar un valor a FALSE, ya no la version, solo cambiar el FailOnSqlError a FALSE (por eos quisiera que sea un archivo aparte por que NO siempre falla el build.) .....codigo...... ##General Properties failOnSQLError=FALSE .....codigo...... ##Other Properties # zipFileSourcePath=\\server1\BuildArchive\1.01\build_563456.zip .....codigo...... una vez que esta en FALSE tengo que volver a lanzar el instalador pero esta vez NO fallara por que el FALSE que pusimos. Una vez que termine el proceso de instalacion, tengo que volver a poner a TRUE el setting para repetir al dia siguiente el proceso. Esta ultima parte de poner de FALSE a TRUE simplemente seria editar el batch que sirva para cambiar de TRUE a FALSE. en resumen, necesitaria 3 batch: 1. para cambiar la version (OK) 2. para cambiar de failOnSQLError=TRUE a failOnSQLError=FALSE 3. para cambiar de failOnSQLError=FALSE a failOnSQLError=TRUE (similar al 2 invirtiendo las opciones) Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: sabeeee en 11 Marzo 2014, 20:49 pm Esto es la biblia.
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Rikosky en 15 Marzo 2014, 15:13 pm Como se podria insertar una linea de texto al principio de un .txt?
Código: echo %text23%>>Accesos.txt Lo mismo que se haria con ese codigo, pero insertando la linea al principio y no al final, de forma que lo mas reciente este arriba y no al final del texto. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 18 Marzo 2014, 03:40 am Como se podria insertar una linea de texto al principio de un .txt? Código: echo %text23%>>Accesos.txt Lo mismo que se haria con ese codigo, pero insertando la linea al principio y no al final, de forma que lo mas reciente este arriba y no al final del texto. Hola, puedes hacerlo de la siguiente manera: Código
Saludos Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: hostbob en 21 Abril 2014, 09:33 am i have been trying to make this to work for a while, but with how you just did it i think i can now understand some few points from your post.
Nice share Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: xxIv4nxx en 24 Abril 2014, 22:50 pm hola buenas! Disculpa creo que aqui me estoy ahogando lentamente en un vaso de agua... Quiero crear un archivo de texto que tenga las siguientes letras, que quiero sean modificadas desde ese mismo y otra aplicacion al mismo tiempo.. para que cada vez que pregunte alguno de los dos programas tener el valor en tiempo real (habia intentado esto con variables de entorno, registros de windows.. pero creo q es mas facil así). Entonces, el problema esta en que quiero borrar una letra que entra el usuario coloque, aqui lo estoy tratando de hacer con una variable auxiliar y luego devolver el resultado al txt nuevamente, pero no encuentro como :S
Código: > ARCHIVO.txt ECHO A B C D E F G H I J K L M N O P Q R S T U V W X Y Z De antemano, Gracias! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Demente117 en 12 Mayo 2014, 03:40 am Código: @echo off Mi pregunta: ¿con este bat se puede modificar el caracter "???? aqui esta Perl cambiandose por C, como seria por el simbolo-caracter de las "(comillas)???? Os parecera tonteria pero no consigo cambiarlas, funciona todo lo que le puse menos caracteres especiales como las ". Si este codigo no puede utilizarse, me pondrian uno sencillo, lo poco que se de bat es gracias a tutoriales-ejemplos tipo este foro. a ver si alguien me podria ayudar??? Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: willdoxero en 15 Mayo 2014, 01:36 am Hola a todos, aquí una duda:
Estoy usando EDLIN para modificar una línea en un archivo .bat pero al abrir el nuevo archivo me deja un espacio en blanco al final de la línea que se editó. Cómo puedo evitar el espacio en blanco al final de la línea? Código
Al abrir archivo queda un espacio en blanco (al final del .1), ejemplo: set ruta=127.0.0.1 El problema es que la variable la asocio con otra y al querer entrar a la ruta completa no la identifica por el espacio en blanco. ejemplo: \\127.0.0.1 (espacio)\mi_carpeta alguna sugerencia? :rolleyes: Gracias!! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: xhunik en 25 Septiembre 2014, 20:44 pm es un buen post ciertamente :) :) :) :) :) pero yo necesito todas esas funciones para GNU/LINUX es decir para un script en /bin/bash porque en windows si lo se (gracias a elektro) pero en linux no, yo quisiera saber si hay algun post con esto solo que para el bash. Les agradeceria mucho que me ayudaran :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes:
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 25 Septiembre 2014, 22:09 pm es un buen post ciertamente :) :) :) :) :) pero yo necesito todas esas funciones para GNU/LINUX es decir para un script en /bin/bash porque en windows si lo se (gracias a elektro) pero en linux no, yo quisiera saber si hay algun post con esto solo que para el bash. Les agradeceria mucho que me ayudaran :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes: puff... pues va a estar complicado en el foro encontrar un hilo de estas características para Bash, pero siempre puedes recurrir a la ayuda de San-Google :): ⇲ Advanced Bash-Scripting Guide: Prev Chapter 10. Manipulating Variables (http://tldp.org/LDP/abs/html/string-manipulation.html) ⇲ Bash String Manipulation Examples Length, Substring, Find and Replace (http://www.thegeekstuff.com/2010/07/bash-string-manipulation/) ⇲ 16.4. Text Processing Commands Commands affecting text and text files (http://www.tldp.org/LDP/abs/html/textproc.html) Saludos! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: d(-_-)b en 1 Noviembre 2014, 19:55 pm puff... pues va a estar complicado en el foro encontrar un hilo de estas características para Bash, pero siempre puedes recurrir a la ayuda de San-Google :): ⇲ Advanced Bash-Scripting Guide: Prev Chapter 10. Manipulating Variables (http://tldp.org/LDP/abs/html/string-manipulation.html) ⇲ Bash String Manipulation Examples Length, Substring, Find and Replace (http://www.thegeekstuff.com/2010/07/bash-string-manipulation/) ⇲ 16.4. Text Processing Commands Commands affecting text and text files (http://www.tldp.org/LDP/abs/html/textproc.html) Saludos! Esta bueno todo el contenido, por si interesa, aqui esta todo el material en CHM. Advanced Bash-Scripting Guide http://chm.kollm.org/abs-guide-5.0.chm Un saludo. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: k0rsak0v en 10 Noviembre 2014, 14:55 pm Buenos días camaradas, estoy buscando ayuda para un proceso que necesito, tengo un acceso directo (.LNK) con una ruta o destino dentro de este ("C:\Program Files (x86)\Microsoft Office\AccessRT2007\MsAccess.exe" "C:\Program Files (x86)\World Office\\\WO10\WProg.afs" /runtime /wrkgrp "C:\Program Files (x86)\World Office\\\WO10\WGroup.afw" /user "cliente" /pwd "") necesito el código para almacenar la ruta donde esta el archivo Wgroup.afw, o el código para buscar en donde esta instalado el archivo, ya que necesito hacer un proceso de remplazo de estos archivos, el problema es que en los equipos están instalados algunas veces sobre las raíces de otros discos, casi siempre en ubicaciones distintas, es de extrema urgencia su ayuda
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: ServH en 10 Marzo 2015, 12:24 pm Hola buenos días.
Quería comentaros un problema que estoy teniendo a la hora de crear un .bat Lo que necesito hacer creo que es sencillo, pero estoy fallando en la sintaxis del código. Lo que tiene que hacer es renombrar los archivos de una carpeta, con la cadena de texto de un fichero de log. Este es el log filename name email comment twitter phone 2015_03_06_103545 dario 2015_03_06_173540 emilio 2015_03_09_132819 maria En situación tendríamos un archivo .jpg que se llama 2015_03_06_103545.jpg y la intención del programa es que lo cambie por dario.jpg El bat tendría que hacer un recorrido por toda la carpeta y cambiar todos los jpg por su nombre. Un saludo y gracias. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 10 Marzo 2015, 14:07 pm @ServH
Muestra el código que llevas hecho por ti mismo, aquí no se hacen tareas. Te muestro un ejemplo para iterar el log y asignar el "nombre" a la variable de FOR: Código Luego, solo tendrías que renombrar los archivos utilizando dicha variable para asignar el nuevo nombre del archivo jpeg. Saludos Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: ServH en 10 Marzo 2015, 14:28 pm Hola Elektro.
Pues no tengo nada más que el pseudocódigo ya que voy probando módulos para que me hagan pequeñas funciones. (Estoy empezando con este lenguaje) Ahora te pondré una muestra. Lectura del archivo. filename name email comment twitter phone PHOTO_1 maria PHOTO_6 paco PHOTO_7 juan En un primer lugar lo que quiero que haga el bat es leer este .txt y guardar en una variable el nombre del fichero var1=PHOTO1 y otra variable con el nombre var=maria Pero estas variables quiero que guarden relación (No se como explicarlo). Después el .bat hará una lectura de los archivos y cuando encuentre PHOTO1 que es = a var1 lo cambie por var2. Se podría antes de ejecutar nada hacer un tratamiento del log quedando así. PHOTO_1 maria PHOTO_6 paco PHOTO_7 juan P:D No pido el código hecho, solo quiero entender que tengo que hacer y solucionar las cosas en las que estoy fallando. Un saludo. y gracias. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 10 Marzo 2015, 18:02 pm P:D No pido el código hecho, solo quiero entender que tengo que hacer y solucionar las cosas en las que estoy fallando. Ok, pues te explico, el log consiste en dos "argumentos" (o Tokens), el primero sería el nombre de la imagen (PHOTO_1), y el segundo sería el nombre de la persona (María), pues, solo tienes que modificar el parámetro "Tokens" de un For /F (cómo el que te mostré antes), para que tome esos dos argumentos por separado, usando cómo deliminator de argumento el caracter "espacio", de esa forma almacenarás en la variable %%a el nombre de la imagen, y en la variable %%b el nombre de la persona, obteniendo esa "relación" que quieres. Lo que acabo de comentar ya lo hace el For que mostré arriba, pero si quieres entenderlo mejor, lee aquí: For /f - Loop through text | Windows CMD | SS64.com (http://ss64.com/nt/for_f.html) Saludos Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: ServH en 11 Marzo 2015, 09:26 am Hola Elektro.
Primero que nada agradecerte la ayuda desinteresada, me ha sido de utilidad entender mejor que es lo que necesita el programa. Y en segundo lugar, y observando que tienes experiencia en este lenguaje, ¿Crees que es la manera más optima de realizar esto? Muchas gracias por el tutorial. Un saludo. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 11 Marzo 2015, 10:05 am ¿Crees que es la manera más optima de realizar esto? No, Batch es una herramienta limitada, está diseñada y orientada a la automatización de tareas simples, los resultados y la eficiencia de cualquier otro lenguaje siempre será más óptimo que Batch, sin excepción alguna. Sobre el problema que tienes, en parte ese texto que has mostrado se podría considerar un archivo CSV delimitado por espacios, y digo en parte, porque no se si alguno de los campos de esa tabla contiene un "espacio" (ej: 'María del monte'), entonces el algoritmo que uses para delimitar los campos basándose en ese "espacio" delimitador no servirá, y será mucho más complejo, porque si la cantidad de espacios es desconocida... no se cómo vas a reconocer un nombre a menos que utilices una base de datos de nombres, jaja. Por otro lado, la tarea no requiere más que la utilización de un lenguaje simple cómo es Batch (suponiendo que no haya más espacios adicionales), pero óptimo no es que sea. En fin, no me enrollo más, lee esta respuesta para hallar una solución mucho más eficiente que Batch: http://foro.elhacker.net/programacion_general/programa_de_busqueda_con_archivo_csv-t431563.0.html;msg2001628#msg2001628 PD: Ese mismo Snippet que desarrollé en VB.Net te debería servir, pero cambiando el delimitador por un espacio o tabulación o lo que uses, claro está. PD2: Cómo explico en ese comentario, cualquier otro lenguaje sirve, cómo Python, Ruby, C/C++, Java, etc, la resolución del problema es practicamente la misma en cualquier lenguaje, que consiste en generar un búcle que lea linea por linea, solo que unos lenguajes te lo ponen más fácil que otros, y a partir de ahí la elaboración del algoritmo para hacerlo menos o más sofisticado es cosa tuya. Saludos! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: ServH en 11 Marzo 2015, 10:38 am Buenísima la respuesta.
Pero estoy un poco "atado" por la gente de "arriba" jaja, voy a intentar convencerlos de que este sistema no es óptimo por que ahora mismo te iba a escribir por el mismo problema. ¿Que pasa si tiene un nombre compuesto?, ya está el lío montado, no me sirve. En resumen, y por si tienes una idea mejor que la mía, la situación que se me ha planteado es esta. Tenemos un software que toma una fotografía, pero las opciones de este programa solo nos permite guardarlas con un nombre y un sufijo EJ: PHOTO_1 Después al usuario le pide un nombre, que este se guarda para usarlo en el campo EMAIL (Algo que no entiendo, por que lo ha desarrollado así) Y la necesidad era simplificar el proceso de renombrar las fotos, para no tener a una persona aburrida haciendo esto y que fuera con un único clic haciendo uso del log. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 11 Marzo 2015, 11:43 am @ServH
Si los campos de esa tabla están separados usando "tabulación", entonces lo tienes fácil y puedes utilizar el ejemplo que mostré. En cambio, si se usa un espacio para separar los campos, y si además hay nombres compuestos cómo has comentado, entonces no hay nada que sea viable, porque realmente necesitarías gestionar una base de datos de nombres para tomarla como referencia a la hora de delimitar correctamente los campos y así poder aumentar la probabilidad de éxito (no sería 100% fiable). Lo único que se me ocurre, en caso de que los campos esten separados por espacios y no por tabulaciones, es que le pidas al autor de la aplicación que modifique el código para usar un caracter delimitable (por ejemplo un punto y coma ";"), por que el diseño actual sería incorrecto e improductivo. PD: Y si la aplicación es un ensamblado .Net y no puedes recurrir a la ayuda del autor, entonces siempre puedes recurrir a la mágia de la ingenieria inversa (en este caso utilizando técnicas mediante Reflection) para localizar y modificar el caracter que está usando el programa para separar las celdas. Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: ServH en 11 Marzo 2015, 11:52 am @Eleкtro
Pues intenté hablar con el desarrollador, y le pedí que incluyera un módulo para que el campo que el usuario rellena como "nombre" que luego acaba siendo el asunto del correo si eliges la opción de enviar la imagen lo cambiara, pero ni caso. Se me estaban ocurriendo un par de cosas con java, y tener un .jar sencillo que me haga la misma función, además de que tengo más libertad para programar en este lenguaje. Seguramente, abra otro hilo, para no ensuciar este, y pediré algún que otro consejo ya que estoy oxidado. Muchas gracias @Eleкtro por la ayuda prestada hasta el momento. Un saludo. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: light310oct en 29 Marzo 2015, 23:04 pm Yo tengo una duda sobre algo que he intentado hacer con VB6.0 y nada mas no he podido sera que lo podre hacer con un batch?, la idea es agregar datos entre la ultima etiqueta "</tr>"y la etiqueta "</table>"a fin de ir armandome una tabla con datos de una variable
Código Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 30 Marzo 2015, 10:14 am Yo tengo una duda sobre algo que he intentado hacer con VB6.0 y nada mas no he podido sera que lo podre hacer con un batch?, la idea es agregar datos entre la ultima etiqueta "</tr>"y la etiqueta "</table>"a fin de ir armandome una tabla con datos de una variable Si, es posible hacerlo, pero la forma de llevar a cabo esa tarea en un lenguaje simple cómo Batch resultaría en un código bastante tedioso e ineficiente, Batch no puede manipular documentos Html, y además, ya que estás utilizando un lenguaje más apto no deberías rebajar el nivel a una herramienta simplona cómo Batch, no hay necesidad ni justificación para hacer eso, lo mejor es que intentes seguir haciéndolo en un lenguaje capacitado, yo personalmente te recomiendo VB.Net/C#, aunque de todas formas en VB6 puedes utilizar expresiones regulares para hacerlo de una manera menos efectiva. Saludos Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: javiert239 en 20 Junio 2015, 20:57 pm Yo tengo una consulta.
Tengo dos archivos, archivo1.txt y archivo2.txt. El arhivo1 contiene lo siguiente: Citar Primera linea El archivo2 contiene lo siguiente:Tercera linea Quinta linea Citar Segunda linea Cuarta linea Existe alguna forma de fucionar esos archivos de forma que las lineas queden en sus lugares correspondietes? Parecia algo bastante sencillo, pero el otro dia le di un millon de vueltas y no encotre ninguna forma. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 21 Junio 2015, 00:31 am Existe alguna forma de fucionar esos archivos de forma que las lineas queden en sus lugares correspondietes? Parecia algo bastante sencillo, pero el otro dia le di un millon de vueltas y no encotre ninguna forma. En Batch sería algo MUY, MUY tedioso (e ineficiente) ya que no tiene soporte para Arrays; En cualquier otro lenguaje de verdad, sería algo muy sencillo. Una manera general de llevar a cabo esa tarea sería iterar con un búcle las lineas de texto del primer archivo para añadir esas lineas a un Array, una vez hecho esto, ya tienes una colección indizada en la que poder comprobar si un elemento está vacío o no, para reemplazarlo/fusionarlo por el elemento con el mismo índice al iterar las lineas del segundo archivo. Pseudo-Código: Código: declare linesCol(Array) = Null Se que no es Batch, pero desarrollarlo en Batch sería perder el tiempo por que hay muchas mejores opciones, prefiero aportarte una alternativa mejor, mostrándote este código funcional (y eficiente) desarrollado en VB.NET: Código
Archivo 1.txt: Código
Archivo 2.txt: Código
Archivo Combinado.txt: Código
Saludos! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: javiert239 en 21 Junio 2015, 10:10 am Muchas gracias, eso era exactamente lo que queria hacer. Lo probe y funciono sin ningun problema. Muchas gracias de nuevo.
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: DonnySantiago en 26 Agosto 2015, 18:18 pm Hola buen dìa,
Soy nuevo en esto , tengo un archivo .txt que tiene cierto contenido xml , como por ejemplo : <nombre> Donny </nombre> Pero hay casos que este archivo contiene etiquetas de contenido vacio como por ejemplo: <Numero> </numero> Mi duda es la siguiente , como harìa para eliminar esas etiquetas de contenido vacio, claro esta que esas etiquetas pueden varias no solo serà <Numero></Numero> , sino tambien aparecerán etiquetas como <Direccion></Direccion> que también tendrán contenido vacio , esto lo puedo hacer con archivo batch ? Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: nyoz en 3 Septiembre 2015, 20:59 pm Buenas tardes,
tengo el siguiente código: Código: @echo off El código funciona para contar la cantidad de filas de un archivo de texto con la estructura: lis0*.txt, pero necesito ejecutarlo en un árbol de carpetas para todos los archivos con esa estructura, no sólo en la carpeta donde se ejecuta el bat. Adicional, el log que sale es de la siguiente manera: Citar lis001_100_20150903.txt 29366 lis003_100_20150903.txt 366 lis004_100_20150903.txt 66 lis013_100_20150903.txt 293 293 Donde se repite el último número (no debería) o al menos así debería quedar el log: Citar lis001_100_20150903.txt|29366 lis003_100_20150903.txt|366 lis004_100_20150903.txt|66 lis013_100_20150903.txt|293 Desde ya les agradezco la colaboración. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 14 Septiembre 2015, 08:47 am El código funciona para contar la cantidad de filas de un archivo de texto con la estructura: lis0*.txt, pero necesito ejecutarlo en un árbol de carpetas para todos los archivos con esa estructura, no sólo en la carpeta donde se ejecuta el bat. Entonces utiliza un For /R. Adicional, Donde se repite el último número (no debería) Puedes utilizar el comando FIND para contar lineas. Aquí tienes el código funcional: Código Saludos! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: layra en 24 Septiembre 2015, 18:01 pm :silbar: Como puedo extraer información de una base de datos de SQl serve 2008 con un archivo batch -- por favor ayudenmeeeeee siiiiiii :-( :-(
Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: elqueteconte en 7 Octubre 2015, 23:12 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.... Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: sorry en 23 Octubre 2015, 12:30 pm Buenas!!
No se si es posible, a ver que me contáis. Me gustaría añadir el texto de un documento a otro en una zona concreta, después de una palabra para ser exactos. Esto es posible? Muchas gracias Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 23 Octubre 2015, 13:08 pm añadir el texto de un documento a otro en una zona concreta, después de una palabra para ser exactos. Se puede llevar a cabo, pero sería demasiado tedioso de conseguir y el resultado sería un código demasiado sucio e ineficiente. Esa tarea es algo muy complejo para un lenguaje limitado como es Batch. El primer problema que se me ocurre es que tendrías que idear un tedioso algoritmo que iterarase todos los caracteres del archivo objetivo delimitándolo por el caracter espacio " " para poder identificar palabras hasta encontrar la palabra donde quieres insertar texto... sería como reinventar la rueda. En este script que desarrollé hace tiempo, puedes encontrar algunos ejemplos de manipulación de texto, los cuales de por si ya son un lio. ➢ [BATCH] [APORTE] Rutina TEXTMAN para manipular archivos de texto (http://foro.elhacker.net/scripting/batch_aporte_rutina_textman_para_manipular_archivos_de_texto-t372497.0.html;msg1789019#msg1789019) No vale la pena el esfuerzo, ya te aviso. Tu mejor opción es usar un lenguaje apto. En VBS podrías utilizar el método "Split" para partir el texto en dos según la palabra especificada, o también podrías utilizar una expresión regular para obtener la palabra y su posición. En otros lenguajes más sofisticados como por ejemplo VB.Net/C# (solo por nombrar a los que estoy acostumbrado) sería mucho más sencillo, podrías utilizar las metodologías mencionados plus la función "String.IndexOf" y muchas otras más formas de llevarlo a cabo. Saludos Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: sorry en 23 Octubre 2015, 13:12 pm Perdona pero de idea voy mas bien justo en esto de los scripts.
La verdad yo tengo un vbs para generar un código que luego engancho en un documento, me quería ahorrar el paso de estar abriendo el documento y pegando la cadena cada vez que ejecutase el vbs. Puede no eligiera bien el tema del foro donde poner la duda :( Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: gucaza en 4 Noviembre 2015, 18:43 pm Hola a la web y a Leo Gutiérrez., necesito ayuda quiero lograr mediante un batch, cambiar el valor que se le da a Drive(0)=, ejemplo:
Winape.ini [Drives] Drive(0)="i:\amstrad_cpc\juegosdsk\buggy.dsk" Drive(1)= Allow Write 0=false por Winape.ini [Drives] Drive(0)="i:\amstrad_cpc\juegoscpr\frogger 2.cpr" Drive(1)= Allow Write 0=false Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: barao45 en 16 Noviembre 2015, 14:35 pm Leogtz, te hago una consulta. Me podras tirar alguna idea, para hacer un batch donde lee la primer linea de un archivo txt y necesito que me copie los primeros N caracteres y luego pegarlos en otro txt. sabes como podria hacerlo? es para un bat de windows.
Gracias! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: MarcSerrano93 en 14 Diciembre 2015, 12:48 pm Buenos dias compañeros,
La verdad es que soy nuevo en este foro pero des de el dia que entré a trabajar y me pusieron ha hacer scripting es una de las paginas que más he visitado. Muchas gracias por la ayuda de antemano. Mi pregunta es la siguiente. Tengo un archivo de configuración de Apache con el siguiente contenido: <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxRequestWorkers 250 MaxConnectionsPerChild 0 </IfModule> <IfModule mpm_worker_module> StartServers 3 MinSpareThreads 75 MaxSpareThreads 250 ThreadsPerChild 25 MaxRequestWorkers 400 MaxConnectionsPerChild 0 </IfModule> Mi pregunta es si hay alguna manera de poder seleccionar unicamente un trozo de este archivo, es decir, "leer" unicamente el texto situado entre <IfModule mpm_worker_module> y </IfModule> de manera que la salida sea unicamente: <IfModule mpm_worker_module> StartServers 3 MinSpareThreads 75 MaxSpareThreads 250 ThreadsPerChild 25 MaxRequestWorkers 400 MaxConnectionsPerChild 0 </IfModule> Muchas gracias! :D Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: dieboxxxx en 5 Junio 2016, 06:31 am Hola buenas noches,
Como podria comparar dos directorios con BATCH y que me muestre en un archivo de texto aquellos que estàn repetidos? Muchas Gracias Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: victorperezmon en 29 Septiembre 2016, 11:44 am Buenos dias.
A ver si alguien me ilumina. Necesito buscar 4 cadenas de texto en un fichero. Solo va a existir una de ellas, es decir algo como find ("cadena1" or "cadena2" or "cadena3" or "cadena4") fichero.txt Es posible hacerlo con el comando find??? Si no pudiera ser asi la otra forma podria ser encontrar otra cadena en una linea y mostrar la siguiente linea que es donde estaria una de las 4 cadenas y despues hacer un chequeo con un if para ver si en esa linea exista una de las 4 cadenas a buscar. Gracias por vuestra ayuda Saludos Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Vapirox en 3 Noviembre 2016, 17:10 pm Buenas, tengo una duda con un archivo .bat
Una aplicación de seguridad me genera un archivo .log el cual yo visualizo con editor de texto bloc de notas. Me gustaría extraer una dirección ip que esta incluida en el archivo y generar un contador de cuantas veces consiguió la misma dirección ip, pasa que la dirección ip viene pegada de un signo =, viene de esta manera: srcip=192.168.0.1 y almacenar esto en otro txt. por ejemplo: 192.168.0.1 4 encontradas 192.168.0.23 6 encontradas 192.168.0.41 9 encontradas 192.168.0.56 12 encontradas 192.168.0.78 78 encontradas hasta el momento se como extraer una fila en especifico, pero no como recorrer el archivo txt completo e ir extrayendo esa direccion ip a una variable luego la variable le paso un if a ver si se repite y si se repite le sumo su contador y listo, en C++ permite recorrer los archivos txt por palabra y extraer cada palabra comparandola con lo que se quiere buscar. Aqui lo ideal seria extraer todas esas direccion ip y asignarles un contador. espero me puedan ayudar, muchas gracias. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: acebo1993 en 7 Mayo 2017, 11:22 am Buenos días.
Se trata de buscar en un fichero de texto (windows) aquellos servidores que tienen menos de 120.000.000 bytes y posteriormente sacarlos a un fichero de salida. En el primer campo tengo el servidor y en el cuarto y quinto el peso en bytes AAAAAAAA.txt: 15 dirs 14.796.898.304 bytes libres BBBBBBBB.txt: 16 dirs 159.109.120 bytes libres CCCCCCCC.txt: 15 dirs 47.173.632 bytes libres DDDDDDD.txt: 15 dirs 6.366.265.344 bytes libres EEEEEEEE.txt: 14 dirs 65.318.912 bytes libres FFFFFFFFF.txt: 15 dirs 6.662.930.432 bytes libres Sería extraer los registros (quitando el ".txt" si puede ser) y mostrar en este caso sólo: CCCCCCCC 47.173.632 bytes EEEEEEEE 65.318.912 bytes Estoy probando con "for"lo siguiente pero al llegar al "DO" he probado con findstr, if etc y no hay manera: - ejemplo: @ECHO OFF for /F "tokens=1,4 delims= " %%a in (fich1.txt) do ( echo %%a %%b ) > fichout.txt - ejemplo2: - @ECHO OFF FOR /F "tokens=1,4" %%A %%B IN (fich1.txt) DO (FINDSTR -v -i "120.000.000 - 122.000.000.000") > fichout.txt Por favor si pueden orientarme muchas gracias y saludos cordiales Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Scry en 10 Mayo 2017, 17:04 pm Hola buenas, tengo una duda sobre un script que estoy haciendo para modificar unas variables a permanentes.
La cosa es que necesito saber como puedo pasar de esta linea: SET Hola=adios A esta: SETX Hola "%PATH%";adios El tema es que el "=" no se como eliminarlo/modificarlo mediante cmd, el resto de la linea he conseguido sacarla mediante esto (Con ello consigo añadir la "X" al set y el resto de la linea la copia también): setlocal enabledelayedexpansion for /f "tokens=* delims=" %%x in ('type IBERCFG.bat') do ( set linea=%%x set linea=!linea:SET=SETX! call :show !linea! ) goto:eof :show echo %* >> out.txt goto:eof Muchas gracias. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Gamer50 en 22 Agosto 2017, 12:32 pm Hola me gustaria saber si puedo poner con el comando type que me salgan los numeros de las lineas. Perdon si ya hizieron esta pregunta pero tengo mucha prisa. :silbar:
Citar Pregunta Extra Código: echo off & mode 50,50 & cls Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: DekerMD en 1 Mayo 2018, 20:00 pm Buenas. disculpa me podrías ayudar.
ya intente de todo y nada :( se podria hacer un batch para que ponga un (-) en los espacios. Ejemplo: Mi madre se quiere ir? y ocupo que quede ASI. Mi - madre - se - quiere - ir? Me ayudaría bastante con un batch ya que aun me faltan mas de 5,mil frases y creeame es muy aburrido :( de Antemano Gracias. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Eleкtro en 25 Junio 2018, 10:08 am Me ayudaría bastante con un batch ya que aun me faltan mas de 5,mil frases y creeame es muy aburrido :( de Antemano Gracias. Con una herramienta tan limitado como es Batch no puedes llevar a cabo ese tipo de reemplazamiento de caracteres de forma eficiente, sí puedes reemplazar " " por " - " multiples veces en una cadena de texto, pero eso implica que si hay dos espacios en blanco (o más) " " entonces quedaría así: " - - " y no puedes hacer nada por evitarlo ya que no puedes capturar/identificar todos los espacios en blanco de una cadena de texto en Batch. Como mucho podrías usar un búcle FOR para delimitar las palabras (ignorar los espacios en blanco y en su lugar añadir lo que quieras entre cada palabra delimitada) pero esto además de ser una solución engorrosa y un código horriblemente lento (en comparación con cualquier otro lenguaje de programación de hoy en día) debido a la naturaleza del procesamiento por lotes o Batch, también implicaría ciertos problemas innecesarios en el tratamiento de las cadenas de texto. Mi recomendación: simplemente evita usar el anticuado y limitado Batch para cualquier cosa por que realmente no vale la pena usarlo para ningún tipo de tarea pudiendo usar cualquier otro lenguaje, en este caso cualquier otro lenguaje que soporte reemplazamiento de caracteres mediante el uso de expresiones regulares como por ejemplo Visual Basic Script o Powershell (por nombrar los que están soportados por Windows sin necesidad de instalar nada más), o en su defecto sencillamente puedes usar cualquier editor de texto avanzado como por ejemplo Sublime Text o Notepad++... ...en dos segundos tendrías esas 5.000 frases reemplazadas con la siguiente expresión regular de captura: Código: + Y la siguiente expresión de reemplazamiento: Código: - Saludos. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: eaacprotecto en 24 Octubre 2018, 21:21 pm @leongtz
Hola, sobre este tema: Remover lineas en blanco de un archivo de texto : Código: @echo off echo Mi archivo con lineas en blanco : type "file.txt" for /f %%x in ('type "file.txt"') do ( echo %%x >> file2.txt ) echo. echo Mi archivo sin lineas en blanco : type file2.txt Tengo la necesidad de 1. Trabajar con VARIOS archivos 2. Sustituir el caracter "\" por "/" (dentro del archivo). 3. Por lo tanto, que cada archivo modificado se sobre escriba (una vez hecha tal modificación). ej. ECATEPEC 3_1_1_00001838-2817.IDX ECATEPEC 3_1_1_00001838-2818.IDX ECATEPEC 3_1_1_00001838-2819.IDX etc. Yo he modificado el script sugerido de esta manera: @echo off pause echo Mi archivo con lineas en blanco : type "*.idx" for /f %%x in ('type "*.idx"') do ( echo %%x >> file2.txt ) echo pause echo Mi archivo sin lineas en blanco : type file2.txt Por lo que se junta la información de cada archivo en UNO SOLO, que en este caso es el file2.txt Ojalá puedan ayudarme, ya que se trata de más de 10,000 archivos. Muchas gracias! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: Puchu en 25 Octubre 2018, 11:00 am Buenos días,
soy nuevo en el foro pero llevo más de 10 años visitándolo para mis dudas. Nunca antes he tenido que escribir para mis dudas, pero la verdad, no encuentro solución a mi pequeño problema. Tengo este texto en un archivo .inf 07 (Este número me indica cuántas líneas hay en cada .inf) 100101 Bienvenida (40)* (Estas líneas son las que quiero modificar) 000102 Normas (08)* 100103 Plaza (15)* 000104 Iglesia (57) 100105 Av.España (25)* 000106 Correos (12) 000107 Final del dia (05) Tengo una tarea repetitiva de que tengo más de 20 archivos .inf, con textos con este formato y lo único que le debo cambiar es: A las líneas que empiecen con 1, cambiarlos por un 0. En los 20 .inf que tengo, quiero acceder, ver si empiezan con un 1 y cambiarlo por un 0. ¿Una ayudita, por favor? ¡Mil gracias! Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: drewdty en 21 Noviembre 2018, 20:02 pm buenas soy nuevo en este foro
he visto que teneis un monton de ejemplos de batch no he encontrado el que necesito si me pudierais ayudar a crealo seria de agradecer necesitaria modificar o cambiar el nombre terminado en .txt de dentro del archivo ejemplo: archivo1.txt en el interior input" dev/sed/miguel.txt" cambiar miguel.txt por archivo1.txt seria para hacerlo en lote como deberia de empezarlo asignado el nombre a una variable? como asignar la variable para que substituya tal palabra soy nuevo en esto gracias Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: JUANK0926 en 16 Enero 2019, 22:22 pm Hola,
Muchas gracias por la gran cantidad de información que compartes, tengo una duda.. al utilizar este código: @echo off setlocal enabledelayedexpansion for /f "tokens=* delims=" %%x in ('type texto.txt') do ( set linea=%%x set linea=!linea:Perl=C! call :show !linea! ) goto:eof :show echo %* >> out.txt goto:eof al momento de reemplazar la palabra me esta creando una copia justo debajo de la linea y quisiera que esto no se presentara.. que solo la reemplace y guarde. ejemplo de como queda: Test -----> esta es la palabra a reemplazar y cuando realizo el proceso queda una copia Test --> palabra existente Test --> palabra que se crea automaticamente me ayudaría muchísimo tu ayuda gracias Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: alemandio en 8 Junio 2020, 05:06 am amigos buenas noches, quería de su ayuda, tengo un problema con todos los archivos de DD, se agrego la extension .zwer y no permite abrir ningun archivo, lo puedo eliminar manualmente uno a uno pero tengo muchos gigas.
un ejemplo 20161027_142515279_iOS.jpg.zwer agradecere su ayuda. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: BlackGhost en 4 Abril 2022, 04:45 am Buenas,
Alguien me podria decir como puedo hacer para que cuando hago un script .bat como quitar la ventana cmd cuando lo ejecuto Gracias. Título: Re: Acciones sobre archivos de texto. [Batch] Publicado por: **Aincrad** en 4 Abril 2022, 19:39 pm [BATCH] [APORTE] Batch Auto Hide Start [BAHS] (https://foro.elhacker.net/scripting/batch_aporte_batch_auto_hide_start_bahs-t486006.0.html)
aunque si quieres que de verdad no salga la cmd, puedes convertirlo a exe y modifica los parametros de inicio. |