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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Pequeña duda bat.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pequeña duda bat.  (Leído 1,927 veces)
edunardo

Desconectado Desconectado

Mensajes: 61


Ver Perfil
Pequeña duda bat.
« en: 15 Noviembre 2008, 14:37 pm »

Hola a todos.

Estoy haciendo un script el cual al ejecutarlo el usuario mete un valor es decir.

script.bat valor

entonces dicho valor %1 le voy usando a lo largo del script...
EL problema es que no veo la forma de que si el usuario ejecute el script sin el valor le diga por pantalla que meta el valor...

he probado if %1 ==nul , if %1=="" pero nada... se que no es complicado pero no veo la forma de que si no metes el valor no se ejecute...

se puede hacer de dos formas

1º)script.bat VALOR (si no metes valor te salta un mensaje que dice que no lo has metido y no se ejecuta el script).
2º)script.bat  y que me pida por pantalla que meta un valor

a ver si me echais una mano que se que no es dificil pero no se como hacerlo.
Muchas gracias.


En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Pequeña duda bat.
« Respuesta #1 en: 15 Noviembre 2008, 16:20 pm »

Prueba asi :
Código
  1. @ECHO OFF
  2. IF ["%1"]==[""] (
  3. ECHO FALTA VALOR!
  4. )
  5. ECHO:HAS INTRODUCIDO %1
  6. GOTO:EOF
  7.  
ó así :
Código
  1. @ECHO OFF
  2. SET ME=%1
  3. ECHO FALTA VALOR!
  4. )
  5. IF DEFINED ME (
  6. ECHO INTRODUCISTE %1
  7. )
  8. GOTO:EOF

Y si quieres que %1 tenga cierto valor y el batch ejecute alguna función :
Código
  1. @echo off
  2. :: Binary.bat, convierte un texto a codigo binario.
  3. if ["%1"]==[""] (goto:Syntax)
  4. if /i ["%1"]==["-h"] (goto:Syntax)
  5. if /i ["%1"]==["--help"] (goto:Syntax)
  6. if ["%1"]==["/?"] (goto:Syntax)
  7. :Code
  8. set texto=%*
  9. set texto=%texto:a=01000001%
  10. set texto=%texto:b=01000010%
  11. set texto=%texto:c=01000011%
  12. set texto=%texto:d=01000100%
  13. set texto=%texto:e=01000101%
  14. set texto=%texto:f=01000110%
  15. set texto=%texto:g=01000111%
  16. set texto=%texto:h=01001000%
  17. set texto=%texto:i=01001001%
  18. set texto=%texto:j=01001010%
  19. set texto=%texto:k=01001011%
  20. set texto=%texto:l=01001100%
  21. set texto=%texto:m=01001101%
  22. set texto=%texto:n=01001110%
  23. set texto=%texto:o=01001111%
  24. set texto=%texto:p=01010000%
  25. set texto=%texto:q=01010001%
  26. set texto=%texto:r=01010010%
  27. set texto=%texto:s=01010011%
  28. set texto=%texto:t=01010100%
  29. set texto=%texto:u=01010101%
  30. set texto=%texto:v=01010110%
  31. set texto=%texto:w=01010111%
  32. set texto=%texto:x=01011000%
  33. set texto=%texto:y=01011001%
  34. set texto=%texto:z=01011010%
  35. echo %texto%
  36. goto:eof
  37. :Syntax
  38. echo %~nx0
  39. echo Modo de uso :
  40. echo %~nx0 Caracter
  41. echo Caracter : Debe ser una letra del abecedario.
  42. goto:eof

Saludos.


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
edunardo

Desconectado Desconectado

Mensajes: 61


Ver Perfil
Re: Pequeña duda bat.
« Respuesta #2 en: 15 Noviembre 2008, 16:36 pm »

perfecto, con los corchetes va de lujo.... cago en la lexe...

al final lo he hecho asi
IF ["%1"]==[""] GOTO:EOF

asi si no se mete el valor el script se acaba, la pregunta es...
como puedo hacer que además de que se acabe diga No ha introducido el valor...

es decir  que en vez de hacer una cosa con el if, haga dos...

muchas gracias
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Pequeña duda bat.
« Respuesta #3 en: 15 Noviembre 2008, 16:46 pm »

Código:
@ECHO OFF
IF ["%1"]==[""] (
ECHO FALTA VALOR!
ECHO MODO DE USO :
ECHO %~NX0 VALOR
REM AQUI TODO EL DEMAS CODIGO.
)
ECHO %1
GOTO:EOF

Un posible problema es que si el usuario intrudoce ", saldrá error en el Batch.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
edunardo

Desconectado Desconectado

Mensajes: 61


Ver Perfil
Re: Pequeña duda bat.
« Respuesta #4 en: 15 Noviembre 2008, 17:41 pm »

Lo he hecho más sencillo tomando tu idea..

simplemente he hecho.

IF ["%1"]==[""] (
cls & echo No has introducido el valor
GOTO:EOF)
aqui sigue el programa...
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines