Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Stealt en 24 Abril 2013, 09:46 am



Título: Uso del && y || en batch
Publicado por: Stealt en 24 Abril 2013, 09:46 am
Hola, necesito comparar varias variables en una misma sentencia para una practica de sistemas operativos, el código que uso es el siguiente:

Código:
if [ %num1% equ 0 ] && [ %num2% equ 0 ] && [ %num3% equ 0 ] (
echo Todos los numeros son igual a 0
pause
exit
)

He probado cambiando 0 por una variable igual a 0, con comillas y usando ==, pero nada.

Me devuelve que no se esperaba 0 en este momento o no se esperaba && en este momento.

La profesora dice que si que funcionan los OR y AND pero no explica.
Alguien sabe como hacer que funcione ese código sin tener que anidar ifs?


Título: Re: Uso del && y || en batch
Publicado por: Meine programmen en 24 Abril 2013, 15:36 pm
No puedes meter 3 condiciones de esa manera. Puedes meter una condicion como comando que sucedera si se cumple la condición, y repetirlo. Quiero decir:
Código:
if %num1% equ 0 if %num2% equ 0 if %num3% equ 0 (echo Todos los numeros son iguales a 0
pause
exit)
Espero ser de ayuda


Título: Re: Uso del && y || en batch
Publicado por: Stealt en 25 Abril 2013, 14:12 pm
Si, muchas gracias, hoy tras insistirle me ha dicho que no se puede...
Que windows trabaja a un nivel mas bajo que linux y tal...

Como vi que el post iba ya por 30 visitas y ninguna respuesta, di por hecho que se equivocaba y comence a anidar ifs, de momento lo llevo bien.

En serio, muchas gracias con algo tan básico :)


Título: Re: Uso del && y || en batch
Publicado por: Eleкtro en 30 Abril 2013, 11:48 am
Que windows trabaja a un nivel mas bajo que linux y tal...

Que Batch séa un "retrasado" no significa que la shell de Linux séa increíblemente superior a la de Windows, Windows además de Batch también dispone el uso nativo de VisualBasicScript, Jscript, y Powershell, puedes hacer de todo. Si no me equivoco Linux solo dispone de Bash como lenguaje nativo (No lo sé seguro pero...), así que tu me dirás.

saludos!