Título: Modificacion variables BATCH Publicado por: victme 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 Título: Re: Modificacion variables BATCH Publicado por: Eleкtro 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
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
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
...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. |