Problemas con Comando IF

Iniciado por Caballero de Hielo, 27 Diciembre 2013, 19:00 PM

0 Miembros y 1 Visitante están viendo este tema.

Caballero de Hielo

Estimados, trato de hacer un BAT que ejecute un ping hacia una Ip de impresora, pero dependiendo del nombre que ingresen se debe de realizar un ping a esa impresora.

El detalle es que siempre me ejecuta el PING 118.220.52.123 que es el primero.
este es mi Script




[MOD]: Usa las etiquetas de código.




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

:menu
set /p "var=Ingrese el nombre de la Impresora SWIFT:"
If not defined var (goto:menu)

:PECOMEXT
PING 118.220.52.123
pause
exit

:PEGARANT
PING 118.220.52.124
pause
exit

:PEIMPORT
PING 118.220.52.125
pause
exit

:PEOPINTE  
PING 118.220.52.126
pause
exit

:PETESORI
PING 118.220.52.127
pause
exit

:PETRANXT
PING 118.220.52.128
pause
exit

:PEVALORE
PING 118.220.52.129
pause
v

:PECOMUNIC
PING 118.220.52.130
pause
exit

IF "%var%" = "%PECOMEXT%" GOTO:PECOMEXT
IF "%var%" = "%PEGARANT%" GOTO:PEGARANT
IF "%var%" = "%PEIMPORT%" GOTO:PEIMPORT
IF "%var%" = "%PEOPINTE%" GOTO:PEOPINTE
IF "%var%" = "%PETESORI%" GOTO:PETESORI
IF "%var%" = "%PETRANXT%" GOTO:PETRANXT
IF "%var%" = "%PEVALORE%" GOTO:PEVALORE
IF "%var%" = "%PECOMUNIC%" GOTO:PECOMUNIC
exit


Eleкtro

Esta linea:
Citar
Código (dos) [Seleccionar]
If not defined var (goto:menu)

La reemplazas por esta otra:
Código (dos) [Seleccionar]
If Not Defined VAR (Goto :MENU) ELSE (Goto :%VAR%)

Y eliminas todo esto:
Citar
Código (dos) [Seleccionar]
IF "%var%" = "%PECOMEXT%" GOTO:PECOMEXT
IF "%var%" = "%PEGARANT%" GOTO:PEGARANT
IF "%var%" = "%PEIMPORT%" GOTO:PEIMPORT
IF "%var%" = "%PEOPINTE%" GOTO:PEOPINTE
IF "%var%" = "%PETESORI%" GOTO:PETESORI
IF "%var%" = "%PETRANXT%" GOTO:PETRANXT
IF "%var%" = "%PEVALORE%" GOTO:PEVALORE
IF "%var%" = "%PECOMUNIC%" GOTO:PECOMUNIC

Si quieres simplificar más el código, puedes utilizar Call en lugar de Goto, y elimina todos los Pause/Exit, son innecesarios.

Saludos








Caballero de Hielo

 ;-)  ;D

Gracias ElektroZoider el BAT quedo con tu consejo, solo lo tengo que mejorar para que valide las 6 impresoras y que te de oportunidad de ingresar de nuevo el dato si te equivocaste, si fallo en mis intentos posteo nuevamente mi Script para que algún alma caritativa lo valide y me indique mis errores u omisiones.

Ya me percate del boton: insertar codigo en adelante lo usare, las disculpas del caso.