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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Batch] Se me cae el script
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: [Batch] Se me cae el script  (Leído 13,359 veces)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: [Batch] Se me cae el script
« Respuesta #10 en: 21 Mayo 2012, 16:17 pm »

De que me hablas? no se que habras leido.. yo no puse nada.. jajaja, me voy chauuu

XDDDDDDD



En línea



VivaElPirateo

Desconectado Desconectado

Mensajes: 25


Ay dios mío, virgen santísima!!!!!!!!!


Ver Perfil
Re: [Batch] Se me cae el script
« Respuesta #11 en: 21 Mayo 2012, 18:49 pm »

Lo del doble post se me había olvidado: es algo que está siempre en regla en todos los foros...sorry por eso!!!

Código:
set /p "op=Ingrese una opcion: "
Echo "%OP%" | FINDSTR "\<[1-8]\>" Error de seleccion pause >NUL|| (Goto :Select)
Goto :Opcion%OP%

Al hacer lo de las comillas dobles en %OP% me resuelve lo del &, pero no lo de la comilla "

Millón de gracias por las respuestas sociates!!!!!!!!

Igual necesito ponerle un mensaje de error para que el usuario sepa que se está equivocando en ingresar los caracteres.

Por más que intento hacerlo, no lo consigo.

Ayuda, porfa!!!!!!!


« Última modificación: 21 Mayo 2012, 19:05 pm por VivaElPirateo » En línea

$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: [Batch] Se me cae el script
« Respuesta #12 en: 21 Mayo 2012, 19:21 pm »

Lo de que haga el mensaje de error no se como, pero mejore el codigo, anulando lo de la comilla, ahora si no da error nunca, eso espero.

Código
  1. :menu
  2. cls
  3. echo              1.- Ver datos de autor.
  4. echo              2.- Mirar mensaje.
  5. echo              3.- Salir del programa.
  6. set "opcion="
  7. set /p "opcion= Elija a donde desea ir: "
  8. if not defined opcion (goto menu)
  9. if "%opcion:"=%"=="1" (goto :autor)
  10. if "%opcion:"=%"=="2" (goto :mensaje)
  11. if "%opcion:"=%"=="3" (goto :salir)  
  12. goto :menu
  13.  

Hice que verifique el valor de opcion pero sin las comillas. Total todo cuenta como error.

Tal vez haciendo lo de FINDSTR y buscando si existe la comilla ", que muestre el mismo error que cuando no se ingresa los datos correctos, es decir, hacer una captura de esa exepcion en batch, para q antes de hacer los ifs verifique si existe la comilla. Yo no se usar FINDSTR, pero Elektro tal vez lo hace.

Aunque.. para mi, repito, no mostrar ningun mensaje, asi como hace este ultimo codigo que deje, queda mas profesional, pienso yo.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: [Batch] Se me cae el script
« Respuesta #13 en: 21 Mayo 2012, 21:42 pm »

Yo creo q lo profesional es mostrar un mensaje de error siempre que el código pueda dar algún error incorregible, En caso contrario, Si es un código perfecto que no puede dar lugar a errores, Pues sin mensaje de error como dice $Edu$

Y con este code de abajo, ya no puede dar error, Pero ahi te dejo para que pongas el mensaje de error a tu gusto:

Código
  1. @echo off
  2.  
  3. :Select
  4. CLS
  5.  
  6. REM Reseteamos el valor de la variable...
  7. Set op=Foro.ElHacker.Net
  8.  
  9. set /p "op=Ingrese una opcion: "
  10.  
  11. REM Reemplacamiento del string. (Le borramos las comillas que contenga la variable. No es necesario hacer esto con el resto de caracteres.)
  12. Set "Op=%OP:^"=%" & REM "
  13.  
  14. REM Esta linea devuelve directamente al menú principal si no se introduce el intervalo de números 1 a 8.
  15. Echo "%OP%" | FINDSTR "\<[1-8]\>" >NUL || (Goto :Select)
  16.  
  17. REM Esta linea manda un mensaje de error si no se introduce el intervalo de números 1 a 8, y devuelve al menú principal.
  18. REM Echo "%OP%" | FINDSTR "\<[1-8]\>" >NUL || (Echo: Tu mensaje de error & Ping -n 4 localhost >NUL & Goto :Select)
  19.  
  20. Goto :Opcion%OP%
  21.  
  22. :Opcion1
  23. Echo Has elegido la Opcion 1 & pause & Goto :Select
  24. :Opcion2
  25. Echo Has elegido la Opcion 2 & pause & Goto :Select
  26. :Opcion3
  27. etc...

Saludos
« Última modificación: 21 Mayo 2012, 21:52 pm por EleKtro H@cker » En línea



VivaElPirateo

Desconectado Desconectado

Mensajes: 25


Ay dios mío, virgen santísima!!!!!!!!!


Ver Perfil
Re: [Batch] Se me cae el script
« Respuesta #14 en: 22 Mayo 2012, 03:29 am »

Ahora tengo lo siguiente:

Código:
set "var="    
set /p "var=               Ingrese un numero entre el 1 y el 8 : "


 
 if not defined opcion (goto :inicio)

 if "%var:"%"=="1" (goto :alfa)
 if "%var:"%"=="2" (goto :beta)
 if "%var:"%"=="3" (goto :gamma)
 if "%var:"%"=="4" (goto :epsilon)
 if "%var:"%"=="5" (goto :omega)
 if "%var:"%"=="6" (goto :uno)
 if "%var:"%"=="7" (goto :dos)
 if "%var:"%"=="8" (goto :tres)



echo off
:alfa
color 2e
cls
echo...


Todo OK con lo de la validación de errores, pero cuando intento pasar a la opción alfa, por ejemplo, no me dirige hacia ahí.

Cuál esl el drama???
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: [Batch] Se me cae el script
« Respuesta #15 en: 22 Mayo 2012, 06:18 am »

Código
  1. if "%var:"%"=="1" (goto :alfa)
  2. if "%var:"%"=="2" (goto :beta)
  3. if "%var:"%"=="3" (goto :gamma)
  4. ...

Todo OK con lo de la validación de errores, pero cuando intento pasar a la opción alfa, por ejemplo, no me dirige hacia ahí.

No, Nada está OK. El código que has puesto ahora no da errores porque no está comprobando ninguna variable.
Estás usando mal la syntaxis, Estás escribiendo una comilla doble donde no debe haber comillas, Las comprobaciones no se puede efectuar.

Se te ha explicado como hacerlo, Sobretodo en mi última respuesta.
Si tienes más dudas con este código, Mejor deberias pensar en coger un manual de Batch y empezar a practicar, Porque de verdad que ya has recibido toda la ayuda posible para este problema, Te lo dijimos TODO y te lo dimos todo hecho, Ahi tienes los códigos que funcionan, No hay más misterio.


PD:
Código
  1. :: BAD
  2. if "%var:"%"=="1" (goto :alfa)
  3.  
  4. :: GOOD
  5. if "%var%"=="1" (goto :alfa)

Un saludo.
En línea



$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: [Batch] Se me cae el script
« Respuesta #16 en: 22 Mayo 2012, 16:54 pm »

Creo que te has equivocado Elektro, esas comillas era por lo de que no de errores y entonces yo las remplazaba por nada.

El codigo ya lo deje y es este:

Código
  1. :menu
  2. cls
  3. echo              1.- Ver datos de autor.
  4. echo              2.- Mirar mensaje.
  5. echo              3.- Salir del programa.
  6. set "opcion="
  7. set /p "opcion= Elija a donde desea ir: "
  8. if not defined opcion (goto menu)
  9. if "%opcion:"=%"=="1" (goto :autor)
  10. if "%opcion:"=%"=="2" (goto :mensaje)
  11. if "%opcion:"=%"=="3" (goto :salir)  
  12. goto :menu
  13.  
  14.  

Fijate bien lo que copias y no copies a media, mas vale trata de entenderlo y entonces no te equivocaras. No se porque por ejemplo pones un echo off por ahi en tu codigo..
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: [Batch] Se me cae el script
« Respuesta #17 en: 22 Mayo 2012, 17:42 pm »

Creo que te has equivocado Elektro, esas comillas era por lo de que no de errores y entonces yo las remplazaba por nada.

No, no me habia equivocado, Tú si que estás haciendo bien tu code, Al agregarle el signo del  = estás eliminando temporalmente las comillas para hacer la comprobacion, Pero en el code que he citado no hace eso, No funciona xD, El tuyo sí.

Cita de: Edu
Código
  1. if "%opcion:"=%"=="1" (goto :autor)
Cita de: vivaelpirateo
Código
  1. if "%opcion:"%"=="1" (goto :autor)


Saludos
En línea



$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: [Batch] Se me cae el script
« Respuesta #18 en: 22 Mayo 2012, 17:48 pm »

Ahhh no veia bien xDD
En línea

VivaElPirateo

Desconectado Desconectado

Mensajes: 25


Ay dios mío, virgen santísima!!!!!!!!!


Ver Perfil
Re: [Batch] Se me cae el script
« Respuesta #19 en: 22 Mayo 2012, 18:35 pm »

Mil gracias socitos!!!!

Ahora sí que me pegué la escurrida y me di cuenta del error.


Millón de gracias, mis buenos foreros!!!

 ;-)


Otra consulta:

Cómo la hago para poner más de 9 opciones???

Ya que cuando intento poner 10 ó más, me genera problemas el código:


Código:
set "op=" 
set /p "op=               Ingrese una opcion entre el 1 y el 10 : "

Set "op=%op:^"=%" & REM "

echo "%op%" | FINDSTR "\<[1-9]\>" >NUL || (Goto :beta)

Goto :op%op%

La tengo que dejar en 9 para no tener problemas.


No sé si me responda a mí mismo con esto:

Código:
echo "%op%" | FINDSTR "\<[1-9] || [10] \>" >NUL || (Goto :beta)


« Última modificación: 23 Mayo 2012, 02:49 am por VivaElPirateo » En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
programa batch o script
Scripting
meihan 0 2,150 Último mensaje 28 Junio 2008, 07:05 am
por meihan
Script BATCH BASICO
Scripting
Fx Hound 1 4,404 Último mensaje 15 Mayo 2010, 18:25 pm
por flony
Batch Script Compara IPs
Scripting
Fluflu 3 4,036 Último mensaje 4 Agosto 2010, 14:38 pm
por Eltester
batch q ejecute un script de sql?
Bases de Datos
_CrisiS_ 4 4,144 Último mensaje 11 Noviembre 2011, 21:48 pm
por klaine
Help! Script robocopy en Batch
Scripting
sora_ori 0 2,564 Último mensaje 29 Enero 2013, 21:19 pm
por sora_ori
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines