Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: Himitsu en 25 Septiembre 2011, 19:42 PM

Título: Mostrar desigualdad en Batch.
Publicado por: Himitsu en 25 Septiembre 2011, 19:42 PM
Buenas, ultimamente me he estado interesando en Batch y tenia una duda.
Para hacer una condicion a cerca de una variable uso esto:
if %opc%== xx goto yy
como podria poner esto mismo pero para indicar una desigualdad en lugar de una igualdad?
if %opc%¿? xx goto yy
Gracias.
Título: Re: Mostrar desigualdad en Batch.
Publicado por: Darioxhcx en 25 Septiembre 2011, 19:48 PM

    EQU - igual
    NEQ - no igual
    LSS - menor que
    LEQ - menor que o igual
    GTR - mayor que
    GEQ - mayor que o igual

if %V1% NEQ %V2%

si mal no recuerdo era asi, deberias fijarte
saludos
Título: Re: Mostrar desigualdad en Batch.
Publicado por: Himitsu en 25 Septiembre 2011, 20:00 PM
Gracias! por fin lo tengo!  :D
Título: Re: Mostrar desigualdad en Batch.
Publicado por: scalverth en 15 Septiembre 2012, 02:23 AM
Usando la explicación dada arriba estoy tratando de hacer uso de la desigualdad, pero no obtengo los resultados esperados, podria alguien revisar mi codigo y decirme en que parte estoy fallando.

@echo off
SET EXPIRA=10/09/2013
IF %DATE% GEQ %EXPIRA% goto expirado
IF %DATE% LSS %EXPIRA% goto noexpirado
:expirado
echo expirado
goto end
:noexpirado
echo no expira
:end
exit
Título: Re: Mostrar desigualdad en Batch.
Publicado por: Eleкtro en 15 Septiembre 2012, 05:37 AM
Estás fallando en que sales de la ejecución antes d epoder mostrar la slaida de ehco... 8Exit), añade un pause antes del comando "exit", y listo.

De todas formas esa comprobación no te va a funcionar...ya que batch ordena y compara los números "mal"., ya que como comprenderás, el primer número de tu ejemplo es mayor que el de la fecha de hoy...

Código (dos) [Seleccionar]
SET EXPIRA=10/09/2013
echo "%DATE:/=%" GEQ "%EXPIRA:/=%"


(http://img685.imageshack.us/img685/4206/captura2st.png)

Así que cambiar el orden de los números, así:

Código (dos) [Seleccionar]
@echo off

SET EXPIRA=10/09/2013

Set "DATE=%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%"
SET "EXPIRA=%EXPIRA:~6,4%%EXPIRA:~3,2%%EXPIRA:~0,2%"

Echo IF "%DATE:/=%" GEQ "%EXPIRA%"
if "%DATE:/=%" GEQ "%EXPIRA%" (Echo Expirado) ELSE (Echo No expira)

pause


(http://img545.imageshack.us/img545/6986/captura1o.png)

Saludos

Título: Re: Mostrar desigualdad en Batch.
Publicado por: scalverth en 15 Septiembre 2012, 07:14 AM
Esta es la solución a mi problema, agradezco su colaboración y la pronta respuesta que me brinda teniendo en cuenta que recien me acabo de registrar en la comunidad.