Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: h0oke en 14 Octubre 2009, 02:43 am



Título: Duda Batch [Solucionado]
Publicado por: h0oke en 14 Octubre 2009, 02:43 am
¿Por qué razón cuando ingreso un numero del 0 al 9 el código no abre la carpeta correspondiente?

Código
  1. @echo off
  2.  
  3. echo "************************"
  4. echo "* 1-Facu              *"
  5. echo "* 2-Algoritmia         *"
  6. echo "* 3-Assembly           *"
  7. echo "* 4-C++                *"
  8. echo "* 5-Python             *"
  9. echo "************************"
  10.  
  11. :bucle
  12. set /p var = Introduzca opcion:
  13.  
  14. if %var% == 1 goto:facu
  15. if %var% == 2 goto:algo
  16. if %var% == 3 goto:asm
  17. if %var% == 4 goto:c
  18. if %var% == 5 goto:pyth
  19.  
  20. :facu
  21. start d:\BuckUp\EBOOKS\facu
  22. :algo
  23. start d:\BuckUp\EBOOKS\Algoritmia
  24. :asm
  25. start d:\BuckUp\EBOOKS\Assembly
  26. :c
  27. start d:\BuckUp\EBOOKS\C++
  28. :pyth
  29. start d:\BuckUp\EBOOKS\Python


Título: Re: Duda Batch
Publicado por: leogtz en 14 Octubre 2009, 03:15 am
Código:
 
:facu
explorer d:\BuckUp\EBOOKS\facu
:algo
explorer d:\BuckUp\EBOOKS\Algoritmia
:asm
explorer d:\BuckUp\EBOOKS\Assembly
:c
explorer d:\BuckUp\EBOOKS\C++
:pyth
explorer d:\BuckUp\EBOOKS\Python


Título: Re: Duda Batch
Publicado por: h0oke en 14 Octubre 2009, 12:30 pm
 :-\ Tampoco funciona, no abre ninguna carpeta. Pareciera que no puede leer las variables.


Título: Re: Duda Batch
Publicado por: FranciskoAsdf en 14 Octubre 2009, 15:46 pm
copia y pega .... lo probé y funciona ^^
Código
  1. @echo off
  2. :Inicio
  3. Cls
  4. echo "************************"
  5. echo "* 1-Facu              *"
  6. echo "* 2-Algoritmia         *"
  7. echo "* 3-Assembly           *"
  8. echo "* 4-C++                *"
  9. echo "* 5-Python             *"
  10. echo "************************"
  11.  
  12. :bucle
  13. set /p "var = Introduzca opcion: "
  14.  
  15. if ["%var%"]==["1"] (goto :facu)
  16. if ["%var%"]==["2"] (goto :algo)
  17. if ["%var%"]==["3"] (goto :asm)
  18. if ["%var%"]==["4"] (goto :c)
  19. if ["%var%"]==["5"] (goto :pyth)
  20. if %var% GEQ 6 (Echo.&Echo Opcion inexistente&Echo.&Pause >Nul 2>&1&Goto :Inicio)
  21.  
  22. :facu
  23. start d:\BuckUp\EBOOKS\facu\
  24. Goto :Inicio
  25. :algo
  26. start d:\BuckUp\EBOOKS\Algoritmia\
  27. Goto :Inicio
  28. :asm
  29. start d:\BuckUp\EBOOKS\Assembly\
  30. Goto :Inicio
  31. :c
  32. start d:\BuckUp\EBOOKS\C++\
  33. Goto :Inicio
  34. :pyth
  35. start d:\BuckUp\EBOOKS\Python\
  36. Goto :Inicio
  37.  

yo creo que te pasaba porque no ponbias el backslash al final de la ruta y el programa trataba de iniciar un archivo

C:\a = es como si le dijieras que abra el archivo "a" que esta en C:\
C:\a\ = ahí le dices que abra el directorio "C:\a\" al colocarle el simbolo "\"


Saludos !!


Título: Re: Duda Batch
Publicado por: leogtz en 14 Octubre 2009, 16:44 pm
Código:
@echo off
:Inicio
Cls
echo "************************"
echo "* 1-Facu              *"
echo "* 2-Algoritmia         *"
echo "* 3-Assembly           *"
echo "* 4-C++                *"
echo "* 5-Python             *"
echo "************************"
 
:bucle
set /p "var=Introduzca opcion: "
if not defined var (goto:bucle)
if ["%var%"]==["1"] (goto :facu)
if ["%var%"]==["2"] (goto :algo)
if ["%var%"]==["3"] (goto :asm)
if ["%var%"]==["4"] (goto :c)
if ["%var%"]==["5"] (goto :pyth)
if %var% GEQ 6 (Echo.&Echo Opcion inexistente&Echo.&Pause >Nul 2>&1&Goto :Inicio)
 
:facu
explorer d:\BuckUp\EBOOKS\facu\
Goto :Inicio
:algo
explorer d:\BuckUp\EBOOKS\Algoritmia\
Goto :Inicio
:asm
explorer d:\BuckUp\EBOOKS\Assembly\
Goto :Inicio
:c
explorer d:\BuckUp\EBOOKS\C++\
Goto :Inicio
:pyth
explorer d:\BuckUp\EBOOKS\Python\
Goto :Inicio


Título: Re: Duda Batch
Publicado por: M a t t en 14 Octubre 2009, 16:58 pm
-


Título: Re: Duda Batch
Publicado por: CaronteGold en 14 Octubre 2009, 20:13 pm
¿Por qué razón cuando ingreso un numero del 0 al 9 el código no abre la carpeta correspondiente?

Código
  1. @echo off
  2.  
  3. echo "************************"
  4. echo "* 1-Facu              *"
  5. echo "* 2-Algoritmia         *"
  6. echo "* 3-Assembly           *"
  7. echo "* 4-C++                *"
  8. echo "* 5-Python             *"
  9. echo "************************"
  10.  
  11. :bucle
  12. set /p var = Introduzca opcion:
  13.  
  14. if %var% == 1 goto:facu
  15. if %var% == 2 goto:algo
  16. if %var% == 3 goto:asm
  17. if %var% == 4 goto:c
  18. if %var% == 5 goto:pyth
  19.  
  20. :facu
  21. start d:\BuckUp\EBOOKS\facu
  22. :algo
  23. start d:\BuckUp\EBOOKS\Algoritmia
  24. :asm
  25. start d:\BuckUp\EBOOKS\Assembly
  26. :c
  27. start d:\BuckUp\EBOOKS\C++
  28. :pyth
  29. start d:\BuckUp\EBOOKS\Python


 Tu pregunta era, por qué no funcionaba, pues el error está aquí:
Código:
set /p var = Introduzca opcion: 


 Sobra el espacio, quedaría :

Código:
set /p var=Introduzca opcion: 


  Pruebalo, y verás como funciona. Saludos.



Título: Re: Duda Batch
Publicado por: M a t t en 15 Octubre 2009, 06:55 am
Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d "D:\BuckUp\EBOOKS"
  4. :main
  5. cls
  6. echo:1. Facu
  7. echo:2. Algoritmia
  8. echo:3. Assembly
  9. echo:4. C++
  10. echo:5. Python
  11. set "number="
  12. set /p "number=Number: "
  13. if not defined number goto :main
  14. if "!number!" equ "1" explorer "Facu"
  15. if "!number!" equ "2" explorer "Algoritmia"
  16. if "!number!" equ "3" explorer "Assembly"
  17. if "!number!" equ "4" explorer "C++"
  18. if "!number!" equ "5" explorer "Python"
  19. goto :main


Título: Re: Duda Batch
Publicado por: h0oke en 16 Octubre 2009, 03:26 am
Gracias a todos por su ayuda... Funciona correctamente.