elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Modificacion variables BATCH
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Modificacion variables BATCH  (Leído 2,004 veces)
victme

Desconectado Desconectado

Mensajes: 3



Ver Perfil
Modificacion variables BATCH
« en: 6 Septiembre 2018, 08:22 am »

No encuentro la manera de remplazar el "=" dentro de una variable
otra cuestion es como le hago  para quedarme solo con un cacho de una variable
como AA="texto, 14 texto j=0.25j=025j, texto" y solo quedarme con "j=0.25" ayudaa


« Última modificación: 6 Septiembre 2018, 08:33 am por victme » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Modificacion variables BATCH
« Respuesta #1 en: 6 Septiembre 2018, 10:16 am »

No encuentro la manera de remplazar el "=" dentro de una variable

Así sería un reemplazamiento de string normal y corriente en Batch:

Código
  1. Set "var=Hello World"
  2. Set "var=%var:Hello=Bye%"
  3.  
  4. Echo:"%var%"

Aquí tienes otros ejemplos:

Sin embargo, Batch es un "lenguaje de programación" muy limitado y tedioso, directamente inutil para muchas necesidades programáticas de la vida real, hasta el punto en que para llevar a cabo un simple reemplazamiento del símbolo reservado de igual (=) en una variable, necesitarás recurrir a engorrosos algoritmos basados en la iteración por tokens o caracter por caracter de dicha variable, como los que puedes encontrar a constinuación en este enlace:


Consejo: no sigas perdiendo tu tiempo y esfuerzos en una herramienta obsoleta y engorrosa como es Batch, y utiliza cualquier otro lenguaje en su lugar. Tienes a tu disposición lenguajes como Visual Basic Script, javascript (para aplicaciones) y Powershell nativamente soportados en Windows. PowerShell es de lo mejor que puedes utilizar.



como le hago  para quedarme solo con un cacho de una variable

Aquí tienes ejemplos de substrings:




como AA="texto, 14 texto j=0.25j=025j, texto"

Para empezar, estás aplicando malos hábitos de programación Batch en esa declaración de variable.

El uso correcto de las comillas dobles para encerrar el valor, es así:
Código:
Set "var=value"

No así:
Código:
Set var="value"

...lo que estás haciendo así es incluir las comillas dobles como parte del valor/string. Dicho de ootra forma, el equivalente a esta declaración:

Código:
Set "var="value""



y solo quedarme con "j=0.25"

Puedes aplicar dos metodologías distintas según tus necesidades, si conoces la posición exacta del caracter de inicio y final entonces puedes aplicar un substring a esa variable, por ejemplo:

Código
  1. Set "var=text1,j=0.25,text2"
  2. set "j=%var:~6,6%"
  3.  
  4. Echo:"%j%"

Si por lo contrario desconoces las posiciones de caracteres entonces no te queda más remedio que delimitar la variable (tokenizarla) y recorrer dicha variable con un búcle por tokens:

Código
  1. Set "var=text1,j=0.25,text2"
  2. FOR /F "Tokens=2 Delims=," %%# IN ("%VAR%") DO (Set "j=%%~#")
  3. Echo:"%j%"

...eso vendría a ser lo más parecido que el inutil Batch permite llevar a cabo para reproducir una especie de operación de string split (partir una cadena de texto en una determinada cantidad de partes como resultado de un caracter delimitador).

Saludos.


« Última modificación: 6 Septiembre 2018, 10:32 am por Eleкtro » En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Variables dentro de variables (batch)
Scripting
MK-Ultra 8 7,859 Último mensaje 6 Febrero 2008, 23:18 pm
por GUN$
[BATCH] ¿Como puedo meter variables dentro de variables?
Scripting
Meine programmen 1 4,133 Último mensaje 24 Marzo 2012, 16:48 pm
por Eleкtro
modificacion de archivos batch
Programación Visual Basic
asdexiva 1 1,805 Último mensaje 5 Noviembre 2013, 03:22 am
por |SMT|
Modificacion de texto en batch
Scripting
santi810 2 2,384 Último mensaje 11 Noviembre 2013, 13:39 pm
por santi810
modificacion de variables constantes
Programación C/C++
d91 4 2,653 Último mensaje 20 Mayo 2014, 12:40 pm
por eferion
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines