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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [AYUDA] [BATCH] Como saber si una variable tiene un caracter especifico.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [AYUDA] [BATCH] Como saber si una variable tiene un caracter especifico.  (Leído 4,758 veces)
.:Xx4NG3LxX:.

Desconectado Desconectado

Mensajes: 202



Ver Perfil WWW
[AYUDA] [BATCH] Como saber si una variable tiene un caracter especifico.
« en: 21 Febrero 2020, 19:59 pm »

Hola otra vez. Como mencioné en el título, quisiera saber Como saber si una variable tiene un caracter especifico.

Lo que quiero hacer es algo como...

Código
  1. @echo off
  2.  
  3. :a
  4. Set /p "num=Introduce un numero decimal > "
  5. if not defined num (goto :a)
  6.  
  7. ::Bien, ahora, lo que quiero saber es; si el numero introducido
  8. ::tiene una coma en cualquier parte, muestre un mensaje, sino
  9. ::muestra otro mensaje.
  10.  

Como ven, no tengo ni siquiera una idea de como se podría hacer.

Espero que me puedan ayudar... Gracias!


« Última modificación: 22 Febrero 2020, 17:40 pm por .:Xx4NG3LxX:. » En línea

"Quizá Batch no sea un lenguaje de programación, pero no obstante deja de ser útil. Asi que no anden diciendo «Que ganas de perder el tiempo»"
Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.351


Ver Perfil
Re: [AYUDA] [BATCH] Como saber si una variable tiene un caracter especifico.
« Respuesta #1 en: 21 Febrero 2020, 23:31 pm »

¿Por qué pierdes el tiempo con esto...?.

Aprende un lenguaje 'de verdad'... donde puedas tomar un libro y absorber en una semana tanto o más de lo que hayas aprendido en meses sobre un proceso (me niego a llamarlo lenguaje) de interpretación extremadamente limitado...

A los "lenguajes de procesado de entradas", hay que darle vuelta y vuelta y ya... se necesitan, pero no para perder tiempo en ellos como para querer resolver enrevesadamente cualquier nimiedad que realizado con cualquier lenguaje, dispone de alguna función explícitamente al caso, dada su generalidad y basta una línea de código...


En línea

.:Xx4NG3LxX:.

Desconectado Desconectado

Mensajes: 202



Ver Perfil WWW
Re: [AYUDA] [BATCH] Como saber si una variable tiene un caracter especifico.
« Respuesta #2 en: 21 Febrero 2020, 23:57 pm »

Disculpa. No es perder el mi tiempo, es querer ir más allá de Batch. Pero más que todo es para aprender, sinceramente, hoy me apeteció aprender Python. Busqué, y encontré un muy buen tutorial, lo recomiendo. Sin tener absolutamente nada de conocimiento sobre Python, voy aprendiendo poco a poco y paso a paso, pero por ahora Batch, que ya sé, ni siquiera es un lenguaje como tal, pero lo quiero dominar al 100%

Lo unico que busco es ayuda con relación al tema, porque ya perdí la cuenta de cuanta gente recomienda aprender otros lenguajes "más completos". También he tocado un poco el VBS, pero hasta ahí...

Espero que alguien me ayude con esto... Gracias!
« Última modificación: 22 Febrero 2020, 16:59 pm por .:Xx4NG3LxX:. » En línea

"Quizá Batch no sea un lenguaje de programación, pero no obstante deja de ser útil. Asi que no anden diciendo «Que ganas de perder el tiempo»"
EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.057



Ver Perfil
Re: [AYUDA] [BATCH] Como saber si una variable tiene un caracter especifico.
« Respuesta #3 en: 22 Febrero 2020, 06:03 am »

Saludos,

- Se me ocurren dos métodos, uno usando Set y comparando variables, y otro usando Find para revisar el %ErrorLevel% que deja para saber si encontró o no.

Código
  1. @Echo Off
  2. :a
  3. Set /P "num=Introduce un n£mero decimal > "
  4.  
  5. Set aux=%num:,=@%
  6. If "%num%" == "%aux%" (
  7.  Echo No hay ,
  8. ) Else (
  9.  Echo Si hay ,
  10. )
  11.  

Código
  1. @Echo Off
  2. :a
  3. Set /P "num=Introduce un n£mero decimal > "
  4.  
  5. Echo %num% | Find "," >nul
  6.  Echo No hay ,
  7. ) Else (
  8.  Echo Si hay ,
  9. )
  10.  
En línea

.:Xx4NG3LxX:.

Desconectado Desconectado

Mensajes: 202



Ver Perfil WWW
Re: [AYUDA] [BATCH] Como saber si una variable tiene un caracter especifico.
« Respuesta #4 en: 22 Febrero 2020, 16:07 pm »

Lo voy a probar. Aunque, si esa era la solución, me sentiré todo un tonto xD. Gracias!

Pues no funcionó... Recontra funcionó xD. Gracias EdePC, una vez más me has ayudado. Te lo agradezco!

¡GRACIAS EdePC!
« Última modificación: 22 Febrero 2020, 16:57 pm por .:Xx4NG3LxX:. » En línea

"Quizá Batch no sea un lenguaje de programación, pero no obstante deja de ser útil. Asi que no anden diciendo «Que ganas de perder el tiempo»"
.:Xx4NG3LxX:.

Desconectado Desconectado

Mensajes: 202



Ver Perfil WWW
Re: [AYUDA] [BATCH] Como saber si una variable tiene un caracter especifico.
« Respuesta #5 en: 22 Febrero 2020, 17:07 pm »

TEMA CERRADO Y SOLUCIONADO
En línea

"Quizá Batch no sea un lenguaje de programación, pero no obstante deja de ser útil. Asi que no anden diciendo «Que ganas de perder el tiempo»"
Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.351


Ver Perfil
Re: [AYUDA] [BATCH] Como saber si una variable tiene un caracter especifico.
« Respuesta #6 en: 23 Febrero 2020, 19:42 pm »

... es querer ir más allá de Batch.
Querer ir más de allá de Batch, es precisamente elegir y saltar a un lenguaje de programación de alto nivel y completo.

Querer ir más allá en Batch... es perder el tiempo, ni más ni menos... pero como es el tuyo, en efecto, nada más que decir....

Creo sin embargo que es bueno que los que se emperran con batch, estén avisados, y no que luego de años 'descubran ' que han perdido un tiempo precioso que podrían haber dedicado a aprender otras cosas... así que espero que no te dés por ofendido, pués lejos de eso es la intención de un mensaje así...
En línea

.:Xx4NG3LxX:.

Desconectado Desconectado

Mensajes: 202



Ver Perfil WWW
Re: [AYUDA] [BATCH] Como saber si una variable tiene un caracter especifico.
« Respuesta #7 en: 23 Febrero 2020, 19:48 pm »

TEMA CERRADO Y SOLUCIONADO

Lee
En línea

"Quizá Batch no sea un lenguaje de programación, pero no obstante deja de ser útil. Asi que no anden diciendo «Que ganas de perder el tiempo»"
.:Xx4NG3LxX:.

Desconectado Desconectado

Mensajes: 202



Ver Perfil WWW
Re: [AYUDA] [BATCH] Como saber si una variable tiene un caracter especifico.
« Respuesta #8 en: 23 Febrero 2020, 21:05 pm »

TEMA REABIERTO

¿Se puede hacer con un for?

Disculpen la molestia... (EdePC)
En línea

"Quizá Batch no sea un lenguaje de programación, pero no obstante deja de ser útil. Asi que no anden diciendo «Que ganas de perder el tiempo»"
EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.057



Ver Perfil
Re: [AYUDA] [BATCH] Como saber si una variable tiene un caracter especifico.
« Respuesta #9 en: 24 Febrero 2020, 00:06 am »

- Sip, solo tienes que recorrer cada caracter de tu variable y ver si es una coma. Como en Batch es algo más complicado obtener el número de caracteres de una variable, puede resultar más sencillo recorrer cierta cantidad de caracteres, en este caso 50, luego se comprueba si aún quedan caracteres en la variable para salir del For y no seguir la 50 veces en vano.

-- Y como siempre, cuando se van a manipular variables de entorno dentro de instrucciones agrupadas hay que utilizar EnableDelayedExpansion:

--- GeSHi tiene un bug con !num:~%%a,1! en DOS así que le voy a poner PHP-BRIEF XD
Código
  1. @Echo Off
  2. Set /P "num=Introduce un n£mero decimal > "
  3.  
  4. SetLocal EnableDelayedExpansion
  5. For /L %%a In (0,1,50) Do (
  6.  Set char=!num:~%%a,1!
  7.  If Defined char (
  8.    If "!char!" == "," (
  9.      Echo Si hay ,
  10.      GoTo :continuar
  11.    )
  12.  ) Else (
  13.    Echo No hay ,
  14.    GoTo :continuar
  15.  )
  16. )
  17.  
  18. :continuar
  19. Pause

- He estado haciendo pruebas con 50000 iteraciones y veo que el FOR tiene un Bug porque demora igual XD, como si no saliera del For.

-- Tampoco es que se vaya a poner tantas iteracciones, no creo que el usuario se ponga a tipear un número cientos de dígitos XD. Esta otra opción no tiene el Bug:

Código
  1. @Echo Off
  2. Set /P "num=Introduce un n£mero decimal > "
  3. Set /A i = 0
  4.  
  5. :inicio_bucle
  6. Call Set char=%%num:~%i%,1%%
  7. If Defined char (
  8.  If "%char%" == "," (
  9.    Echo Si hay ,
  10.    Goto :fin_bucle
  11.  )
  12.  Set /A i += 1
  13.  Goto :inicio_bucle
  14. ) Else (
  15.  Echo No hay ,
  16.  Goto :fin_bucle
  17. )
  18. :fin_bucle
  19.  

-- Estoy utilizando Call Set var1=%%var2:~%var3,1%% para que se expandan bien las variables dentro de variables y asi evitarme usar EnableDelayedExpansion.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
cómo comparar una variable caracter con un código ascii en C « 1 2 »
Programación C/C++
etcheverrypablol 12 24,103 Último mensaje 5 Febrero 2016, 11:57 am
por etcheverrypablol
[Batch] - Reemplazar caracter "-" por espacio en blanco en una variable
Scripting
dpedregosa 4 7,127 Último mensaje 3 Agosto 2017, 20:29 pm
por dpedregosa
Introducir un caracter como variable.
Programación C/C++
skullmang 0 1,383 Último mensaje 7 Octubre 2018, 18:50 pm
por skullmang
[AYUDA BATCH]: Caracter |
Scripting
Mudereded401 3 3,101 Último mensaje 15 Julio 2020, 17:11 pm
por danihopera
Variable un Href en específico
Desarrollo Web
rafaeljoseyepez 3 2,489 Último mensaje 9 Septiembre 2020, 03:14 am
por @XSStringManolo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines