Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: santi810 en 9 Noviembre 2013, 16:30 pm



Título: Modificacion de texto en batch
Publicado por: santi810 en 9 Noviembre 2013, 16:30 pm
Hola, necesito ayuda con un programilla.


Tengo un archivo de texto que es creado por otro batch.
este tiene la siguiente forma, por ejemplo:

                             Alverto567[delantero]
                             juan985[defensa]


creo que en este caso es suficiente para que os imagineis..
vamos, texto, 3 numeros,texto entre corchetes, podria haber 4 numeros, pero seria una excepcion.



Queria ayuda para que al ejecutar un comando quedara asi:

                             Aberto%t%0%%c%del%
                             Aberto%t%%%c%del%
                             juan%t%0%%c%def%
                             juan%t%%%c%def%


porque asi podria pasar ese txt a un bat directamente.

Actualmente lo hago a mano por falta de tiempo para mirar como hacerlo, si alguien me ayuda me ahorraria mucho tiempo!
Gracias


Título: Re: Modificacion de texto en batch
Publicado por: Eleкtro en 11 Noviembre 2013, 06:59 am
Hola.

¿Tenemos que adivinar cual es la lógica usada para que en el resultado aparezcan estos caracteres?:
Citar
Código:
%t%0%%c
%t%%%c
...Yo no le veo relación alguna con los números.

De todas formas este es el tipo de operación que sería tan sencillo de realizar en cualquier otro lenguaje, pero que acabaría siendo demasiado engorroso en Batch y consumiría más dedicación de lo que realmente debería necesitar la escritura de dicha rutina.

Queria ayuda para que al ejecutar un comando quedara asi:

Te muestro la manera de hacerlo usando VBScript, la salida la puedes capturar con un For /F en Batch.

Así queda el resultado, como en tu ejemplo, no se si tendrá mucha lógica o no, pero puedes adaptar lo necesario del código, desde luego creo que con esto tu duda quedará resuelta,
El resultado lo mando al output estándar, entonces puedes utilizar un For /F desde Batch para obtener dicho output, el string formateado del jugador, y utilizarlo cmoo quieras utilizarlo.

(http://img22.imageshack.us/img22/6093/mz7i.png)

Código
  1. If Wscript.Arguments.Count <> 0 Then
  2.   WScript.StdOut.Write(Jugador(Wscript.Arguments(0)))
  3.   WScript.Quit(0)
  4. Else
  5.   WScript.Quit(1)
  6. End If
  7.  
  8. Function Jugador(str)
  9.   Set regEx = New RegExp
  10.  
  11.   regEx.Pattern = "^\D+"
  12.   name = regEx.Execute(str).Item(0)
  13.  
  14.   regEx.Pattern = "\[\D+\]$"
  15.   pos = Mid(regEx.Execute(str).Item(0), 2, 3)
  16.  
  17.   cosa = "%t%%%c"
  18.  
  19.   Jugador = (name & cosa & "%" & pos  & "%")
  20. End Function

Saludos!


Título: Re: Modificacion de texto en batch
Publicado por: santi810 en 11 Noviembre 2013, 13:39 pm
Me vale, ya que queria empezar con vbscript y me acavas de obligar!
Al llegarva casa lo miro a ver si lo entiendo!
Muchas gracias!