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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [BATCH]Problema con IF LSS
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [BATCH]Problema con IF LSS  (Leído 5,115 veces)
Segadorfelix

Desconectado Desconectado

Mensajes: 157



Ver Perfil
[BATCH]Problema con IF LSS
« en: 23 Diciembre 2012, 22:12 pm »

Hola a todos.
Cuando ejecuto lo siguiente:
Código:
if -2233333333 LSS 10 echo menor que diez
debería salir "menor que diez", pero no lo ve como menor, ¿por que pasa esto y como arreglarlo?


« Última modificación: 24 Diciembre 2012, 06:40 am por EleKtro H@cker » En línea

$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: [BATCH]Problema con IF LSS
« Respuesta #1 en: 23 Diciembre 2012, 22:21 pm »

Intenta poner ese numero negativo en una variable: set /a var=-223333333 y luego si haces if %var% LSS 10 (echo menor que diez)

Me dices, tendria que funcionar :P


En línea

Segadorfelix

Desconectado Desconectado

Mensajes: 157



Ver Perfil
Re: [BATCH]Problema con IF LSS
« Respuesta #2 en: 23 Diciembre 2012, 22:25 pm »

Intenta poner ese numero negativo en una variable: set /a var=-223333333 y luego si haces if %var% LSS 10 (echo menor que diez)

Me dices, tendria que funcionar :P
Gracias, pero sale esto:
Citar
Número no válido. Los números están limitados a 32 bits de precisión.
En línea

$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: [BATCH]Problema con IF LSS
« Respuesta #3 en: 24 Diciembre 2012, 00:47 am »

Cierto, porque batch tiene un limite, pero puedes capturar el numero que quieras en varias partes y hacer algo para que te funcione de todas formas, pero bueno, yo eligiria otro lenguaje para programar xD
En línea

Segadorfelix

Desconectado Desconectado

Mensajes: 157



Ver Perfil
Re: [BATCH]Problema con IF LSS
« Respuesta #4 en: 24 Diciembre 2012, 00:50 am »

Ok, creo que vbs no tiene ese problema.
Gracias $Edu$
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.870



Ver Perfil
Re: [BATCH]Problema con IF LSS
« Respuesta #5 en: 24 Diciembre 2012, 06:58 am »

Te voy a mostrar la diferencia.

Limite Batch:
Código
  1. if -999999999 LSS 10 (
  2. Echo Es menor que 10
  3. )
* 9 dígitos



Límite VBS:
Código
  1. if -99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 < 10 then
  2. Wscript.Echo "Menor que 10"
  3. End If
* 308 dígitos



Límite Ruby:
Código
  1. If -999...(Así hasta más de UN MILLÓN DE DIGITOS) < 10
  2.     print "Es menor de 10"
  3. end
PD: Ruby no tiene límite alguno porque convierte los enteros.



Límite python:
* Lo mismo que Ruby.

Saludos.
En línea



Segadorfelix

Desconectado Desconectado

Mensajes: 157



Ver Perfil
Re: [BATCH]Problema con IF LSS
« Respuesta #6 en: 24 Diciembre 2012, 15:50 pm »

Muchas gracias EleKtro H@cker.
En línea

Binary_Death

Desconectado Desconectado

Mensajes: 214



Ver Perfil
Re: [BATCH]Problema con IF LSS
« Respuesta #7 en: 24 Diciembre 2012, 19:18 pm »

Una vez me tuve que enfrentar a ese problema. Me jodió bastante, sí.

Resulta que hice una función un poco engorrosa que te puede servir:

Código:
:_hst
setlocal enabledelayedexpansion
call :_strlen "%~1" & set/a n[0]=!errorlevel!
call :_strlen "%~2" & set/a n[1]=!errorlevel!
if %n[0]% EQU %n[1]% set "s_0=%~1" & set "s_1=%~2" & goto :_endhst
set/a hst=0,nhst=1
if %n[1]% GTR !n[%hst%]! set/a hst=1,nhst=0
set/a l_0=!n[%hst%]!-!n[%nhst%]!
shift/0 & call set s_0=%%~%hst% & call set s_1=%%~%nhst%
for /l %%_ in (1,1,%l_0%) do call set "s_1=0!s_1!"
:_endhst
for /f %%_ in ('"(echo:%s_0%&echo:%s_1%)|sort"') do set "hst=%%_"
endlocal & set "hst=%hst: =%" & exit /b

:_strlen
setlocal
set/a cnt=0
for /f "tokens=* eol=" %%_ in (
'"cmd /u /c echo:%~1|more"'
) do set/a cnt+=1
endlocal & exit /b %cnt%

Como puedes ver, recibe dos parámetros (los dos números) y devuelve en la variable "hst" el mayor.

Suerte, y tómatelo con calma, que ya te digo que es un poco engorrosa pero por lo menos funciona con los dígitos que sea necesario ;)
En línea

Segadorfelix

Desconectado Desconectado

Mensajes: 157



Ver Perfil
Re: [BATCH]Problema con IF LSS
« Respuesta #8 en: 24 Diciembre 2012, 19:26 pm »

Una vez me tuve que enfrentar a ese problema. Me jodió bastante, sí.

Resulta que hice una función un poco engorrosa que te puede servir:

Código:
:_hst
setlocal enabledelayedexpansion
call :_strlen "%~1" & set/a n[0]=!errorlevel!
call :_strlen "%~2" & set/a n[1]=!errorlevel!
if %n[0]% EQU %n[1]% set "s_0=%~1" & set "s_1=%~2" & goto :_endhst
set/a hst=0,nhst=1
if %n[1]% GTR !n[%hst%]! set/a hst=1,nhst=0
set/a l_0=!n[%hst%]!-!n[%nhst%]!
shift/0 & call set s_0=%%~%hst% & call set s_1=%%~%nhst%
for /l %%_ in (1,1,%l_0%) do call set "s_1=0!s_1!"
:_endhst
for /f %%_ in ('"(echo:%s_0%&echo:%s_1%)|sort"') do set "hst=%%_"
endlocal & set "hst=%hst: =%" & exit /b

:_strlen
setlocal
set/a cnt=0
for /f "tokens=* eol=" %%_ in (
'"cmd /u /c echo:%~1|more"'
) do set/a cnt+=1
endlocal & exit /b %cnt%

Como puedes ver, recibe dos parámetros (los dos números) y devuelve en la variable "hst" el mayor.

Suerte, y tómatelo con calma, que ya te digo que es un poco engorrosa pero por lo menos funciona con los dígitos que sea necesario ;)
:o  :o Wow, Gracias Binary_Death, la subrutina  esta algo complicada, la analizare con cuidado.
En línea

Binary_Death

Desconectado Desconectado

Mensajes: 214



Ver Perfil
Re: [BATCH]Problema con IF LSS
« Respuesta #9 en: 24 Diciembre 2012, 19:32 pm »

Cualquier duda me dices  :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problema con batch
Scripting
0xDani 2 2,475 Último mensaje 21 Abril 2012, 00:34 am
por Eleкtro
[Batch] Insertar un batch dentro de un batch que fabrique un .txt
Scripting
$pedrojo2704 2 6,268 Último mensaje 23 Agosto 2012, 10:08 am
por $pedrojo2704
Problema batch
Scripting
viperx666 4 2,814 Último mensaje 11 Marzo 2013, 12:00 pm
por Eleкtro
Problema con un For en batch
Scripting
santi810 4 3,322 Último mensaje 20 Noviembre 2013, 13:55 pm
por Eleкtro
[Batch] Problema con un IF
Scripting
castelar 2 2,024 Último mensaje 16 Mayo 2015, 12:27 pm
por castelar
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines