Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Grasky en 1 Octubre 2012, 22:53 pm



Título: [Batch] Ayuda: Añadir linea a batch
Publicado por: Grasky en 1 Octubre 2012, 22:53 pm
Hola buenas soy nuevo aqui, pero he leido muchos temas sobre batch ya que me atrae.

Bien lo que me gustaria hacer es con un bat añadir una linea tipo:
Código:
if %var1%== etc. etc
al mismo bat pero bajo otra linea especifica del bat.

No se si me explico bien, si no se entiende puedo poner el codigo que he hecho, pero soy muy novato con esto. Espero que me podais ayudar.  :D


Título: Re: [Batch] Ayuda: Añadir linea a batch
Publicado por: Eleкtro en 1 Octubre 2012, 23:34 pm
Código
  1. @Echo OFF
  2.  
  3. :: By Elektro H@cker
  4.  
  5. SET "FILE=Test.txt"
  6. Set "COMMAND=IF "%%VAR%%" EQU "SOMETHING" (THIS^) ELSE (THAT^)"
  7. Set /A "INSERT__IN_LINE=3"
  8.  
  9. For /F "Useback Tokens=*" %%# in ("%FILE%") DO (
  10. Call Set /A "Line+=1"
  11. CMD /C "IF "%%LINE%%" EQU "%INSERT__IN_LINE%" (Echo %COMMAND%>>"%FILE%.new.txt")"
  12. Echo %%#>>"%FILE%.new.txt"
  13. )
  14.  
  15. Pause&Exit


Output:

test.txt.new.txt
Código:
comando1
comando2
IF "%VAR%" EQU "SOMETHING" (THIS) ELSE (THAT)
comando3
comando4
comando5

saludos


Título: Re: [Batch] Ayuda: Añadir linea a batch
Publicado por: Grasky en 2 Octubre 2012, 00:08 am
@EleKtro H@cker
 Vaya eso es complicado, no se muy bien como usarlo. También quiero saber que si añado mas lineas, estas se van a ir acumulando debajo de las otras. Gracias y investigaré el codigo para intentar entenderlo.


Título: Re: [Batch] Ayuda: Añadir linea a batch
Publicado por: Eleкtro en 2 Octubre 2012, 16:20 pm
También quiero saber que si añado mas lineas, estas se van a ir acumulando debajo de las otras.

¿Debajo de la última línea añadida usando por ejemplo el código que te puse arriba?, ¿O añadir lineas al final del texto, abajo abajo del todo?

Lo primero es más complicado pero se puede hacer, con un FOR y guardando en una variable cual fue la última linea utilizada (por el script que puse arriba por ejemplo).
Lo segundo es muy fácil, Si solo quieres añadir lineas abajo del todo, al final del archivo, lo que tienes que hacer es redireccionar así:

Código
  1. Echo primera linea > "Archivo.txt"
  2. Echo linea que va debajo >> "Archivo.txt"
  3. Echo Otra linea que va debajo >> "Archivo.txt"

Y puedes mirar esto: [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)

saludos


Título: Re: [Batch] Ayuda: Añadir linea a batch
Publicado por: Grasky en 4 Octubre 2012, 11:17 am
Gracias, al final lo que he hecho es que se añada el texto a otro .bat y entonces cuando lo necesite hago un call al bat con el texto añadido. Gracias igualmente.
No se si tengo que decir que ya se puede cerrar el post o que tengo que hacer.