Test Foro de elhacker.net SMF 2.1

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 (dos) [Seleccionar]

@echo off

echo "************************"
echo "* 1-Facu              *"
echo "* 2-Algoritmia         *"
echo "* 3-Assembly           *"
echo "* 4-C++                *"
echo "* 5-Python             *"
echo "************************"

:bucle
set /p var = Introduzca opcion:

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

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

: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 (dos) [Seleccionar]

@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 ["%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
start d:\BuckUp\EBOOKS\facu\
Goto :Inicio
:algo
start d:\BuckUp\EBOOKS\Algoritmia\
Goto :Inicio
:asm
start d:\BuckUp\EBOOKS\Assembly\
Goto :Inicio
:c
start d:\BuckUp\EBOOKS\C++\
Goto :Inicio
:pyth
start d:\BuckUp\EBOOKS\Python\
Goto :Inicio


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
@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
Cita de: dynyck 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 (dos) [Seleccionar]

@echo off

echo "************************"
echo "* 1-Facu              *"
echo "* 2-Algoritmia         *"
echo "* 3-Assembly           *"
echo "* 4-C++                *"
echo "* 5-Python             *"
echo "************************"

:bucle
set /p var = Introduzca opcion:

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

:facu
start d:\BuckUp\EBOOKS\facu
:algo
start d:\BuckUp\EBOOKS\Algoritmia
:asm
start d:\BuckUp\EBOOKS\Assembly
:c
start d:\BuckUp\EBOOKS\C++
:pyth
start d:\BuckUp\EBOOKS\Python



Tu pregunta era, por qué no funcionaba, pues el error está aquí:

set /p var = Introduzca opcion:



Sobra el espacio, quedaría :

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 (dos) [Seleccionar]
@echo off
setlocal enabledelayedexpansion
cd /d "D:\BuckUp\EBOOKS"
:main
cls
echo:1. Facu
echo:2. Algoritmia
echo:3. Assembly
echo:4. C++
echo:5. Python
echo:
set "number="
set /p "number=Number: "
if not defined number goto :main
if "!number!" equ "1" explorer "Facu"
if "!number!" equ "2" explorer "Algoritmia"
if "!number!" equ "3" explorer "Assembly"
if "!number!" equ "4" explorer "C++"
if "!number!" equ "5" explorer "Python"
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.