Autor
|
Tema: Menú de selección en Batch (Leído 4,756 veces)
|
Binary_Death
Desconectado
Mensajes: 214
|
Pues... esto pertenecía a un proyecto que quedó bastante en el aire... y bueh, aquí lo dejo, a ver que tal, porque me parece un método interesante @ECHO OFF @SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION @MODE CON COLS=80 LINES=25 @COLOR 0F @TITLE BOOT @REM CODED BY BINARY_DEATH @REM DATA: LAST LINE: 12 :BIOS CALL:LOAD_KEYBOARD CALL:LOAD_GRAPHIC CALL:GRAPHIC_LOAD "!LOGO!" SET/A INDEX=0,LIMIT=2 :MENU SET/A COUNT=0 FOR %%I IN (CHANGE,START,SETTINGS) DO ( IF !INDEX! EQU !COUNT! ( SET VAR=!%%I:@=F!&&SET VAR=!VAR:#=F0! CALL:GRAPHIC_LOAD "!VAR!" ) ELSE ( SET VAR=!%%I:@=0!&&SET VAR=!VAR:#=0F! CALL:GRAPHIC_LOAD "!VAR!") SET/A COUNT+=1 ) CALL KEYBOARD.COM IF %ERRORLEVEL% EQU 80 ( IF %INDEX% LSS %LIMIT% ( SET/A INDEX+=1 ) ELSE (SET/A INDEX=0)) IF %ERRORLEVEL% EQU 72 ( IF %INDEX% GTR 0 ( SET/A INDEX-=1 ) ELSE (SET/A INDEX=%LIMIT%)) IF %ERRORLEVEL% EQU 13 ( EXIT/B %INDEX% ) GOTO:MENU :GRAPHIC_LOAD FOR %%S IN (%~1) DO ( FOR /F "TOKENS=1,2,3 DELIMS=$" %%K IN ("%%S") DO ( ECHO.EB800:%%K "%%L"%%M 1>>CSHOW.TMP )) (TYPE CSHOW.TMP&ECHO.Q)|DEBUG>NUL DEL/Q CSHOW.TMP GOTO:EOF :LOAD_GRAPHIC SET CHANGE=642$C$#,644$H$#,646$A$#,648$N$#,^ 64A$G$#,64C$E$#,64E$Û$@,650$B$#,652$O$#,654$S$# SET START=6E2$S$#,6E4$T$#,6E6$A$#,6E8$R$#,^ 6EA$T$#,6EC$Û$@,6EE$B$#,6F0$O$#,6F2$S$# SET SETTINGS=782$S$#,784$E$#,786$T$#,^ 788$T$#,78A$I$#,78C$N$#,78E$G$#,790$S$# SET LOGO=500$±$F,A2$±$F,142$±$F,1E2$±$F,282$±$F,322$±$F,^ 3C2$±$F,502$±$F,A4$±$F,3C4$±$F,504$±$F,A6$±$F,^ 3C6$±$F,506$±$F,A8$±$F,1E8$±$F,3C8$±$F,508$±$F,^ AA$±$F,1EA$±$F,3CA$±$F,50A$±$F,14C$±$F,28C$±$F,^ 32C$±$F,3CC$±$F,50C$±$F,50E$±$F,510$±$F,B2$±$F,^ 3D2$±$F,512$±$F,B4$±$F,3D4$±$F,514$±$F,B6$±$F,^ 156$±$F,1F6$±$F,296$±$F,336$±$F,3D6$±$F,516$±$F,^ B8$±$F,158$±$F,1F8$±$F,298$±$F,338$±$F,3D8$±$F,^ 518$±$F,BA$±$F,3DA$±$F,51A$±$F,BC$±$F,3DC$±$F,^ 51C$±$F,51E$±$F,520$±$F,C2$±$F,162$±$F,202$±$F,^ 2A2$±$F,342$±$F,3E2$±$F,522$±$F,C4$±$F,3E4$±$F,^ 524$±$F,C6$±$F,3E6$±$F,526$±$F,C8$±$F,3E8$±$F,^ 528$±$F,CA$±$F,3EA$±$F,52A$±$F,CC$±$F,16C$±$F,^ 20C$±$F,2AC$±$F,34C$±$F,3EC$±$F,52C$±$F,52E$±$F,^ 530$±$F,D2$±$F,172$±$F,212$±$F,2B2$±$F,3F2$±$F,^ 532$±$F,D4$±$F,2B4$±$F,3F4$±$F,534$±$F,D6$±$F,^ 2B6$±$F,3F6$±$F,536$±$F,D8$±$F,2B8$±$F,3F8$±$F,^ 538$±$F,DA$±$F,2BA$±$F,3FA$±$F,53A$±$F,DC$±$F,^ 2BC$±$F,35C$±$F,3FC$±$F,53C$±$F,53E$±$F GOTO:EOF :LOAD_KEYBOARD IF NOT EXIST KEYBOARD.COM (( ECHO.N KEYBOARD.COM ECHO.E 0000 B4 08 CD 21 3C 00 75 02 CD 21 B4 4C CD 21 ECHO.R CX ECHO.000E ECHO.W0 ECHO.Q)|DEBUG 1>NUL 2>&1 ) GOTO:EOF
No usa ni WBAT ni programas externos que MS-DOS no incluya, sólo se usa debug para acceder a la memoria de video. Saludos!
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Claro que sí usa programas externos, usa keyboard.com que no es nativo. Una cosa es crear los ejecutables y otra que sean comandos internos del intérprete.
|
|
|
En línea
|
|
|
|
Binary_Death
Desconectado
Mensajes: 214
|
xDDD tienes razón, bueno, pues descontando eso (? xD
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Lo he probado, funciona bien, solo falta "anunciar" qué es lo que eligió el usuario.
|
|
|
En línea
|
|
|
|
Binary_Death
Desconectado
Mensajes: 214
|
Sí... mira, en esta parte, que es la que comprueba que la tecla presionada sea ENTER, sólo es necesario redirigir hacia alguna parte del código. IF %ERRORLEVEL% EQU 13 ( CALL:OPTION_%INDEX% EXIT /B )
Por ejemplo ^^ Saludos!
|
|
|
En línea
|
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Bueno, usando keyboard.com, yo también he creado mi menú selectivo: setlocal enableextensions enabledelayedexpansion :: Opciones set "choices[ !counter!]=% style="color: #448888;">%_" ) set /a n_choices= %counter% call:print !luz! % style="color: #448888;">n_choices% :loop ) ) if !luz! equ !n_choices! ( ) ) ) call:print !luz! !n_choices! :eleccion echo Elegiste la opción : !choices[% style="color: #448888;">choice%]! :print cls echo - ^> !choices[% style="color: #448888;">%_]! echo !choices[% style="color: #448888;">%_]! ) )
Archivos de programa -> ares code.bat CONFIG.SYS cplusplus cpps c_codes Documents and Settings dudas.bat escuela.rar file.txt Intel KEYBOARD.COM log_1.txt log_2.txt log_3.txt log_4.txt log_5.txt log_6.txt MinGW Perl Program Files Qt reporte_porno.rar revistas test.bat Usb WINDOWS _Corel _foster.rar
Elegiste la opci¾n : ares
C:\>
|
|
|
En línea
|
|
|
|
Ari Slash
|
wau! voi a buscar un tuto de keryborad.com me estoy perdiendo de algo parece
|
|
|
En línea
|
|
|
|
Binary_Death
Desconectado
Mensajes: 214
|
Muy bueno leo! ^^ Trabajaré la forma de poder automatizar el estilo del mío... para no tener que diseñar las opciones manualmente. Igual, por el método empleado correría muy lento, así que no se si vale la pena =/ mejor que de ese tipo de menú sólo hayan cortitos En fin, saludos =) Por cierto, Ari-Slash... el menu selectivo podría hacerse igual con set junto con /p, pero habría que presionar una tecla y además no aceptaría laexas flechas de dirección... igualmente, en cuanto al funcionamiento, el keyboard es lo de menos, solo es como un set /p al cual le das una entrada de un solo caracter y almacena en errorlevel el número en ascii de la tecla pulsada... así que de ahí compruebas.
|
|
« Última modificación: 5 Agosto 2010, 23:34 pm por Binary_Death »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[BATCH] Creando un menu
Scripting
|
barnix456
|
7
|
6,120
|
24 Febrero 2011, 19:40 pm
por juanbass
|
|
|
[Batch] ayuda con menu bat
Scripting
|
shadowhunter
|
8
|
3,895
|
9 Octubre 2013, 17:44 pm
por shadowhunter
|
|
|
[Batch] Menu batch dinamico
Scripting
|
shadowhunter
|
9
|
8,158
|
3 Noviembre 2013, 09:13 am
por Almapa
|
|
|
Menú avanzado en Batch
Scripting
|
RTN-House
|
1
|
6,583
|
27 Diciembre 2014, 21:24 pm
por Eleкtro
|
|
|
Ayudaa Tengo Problemas Con Mi Menu En Batch
« 1 2 »
Scripting
|
YoUz
|
11
|
7,679
|
8 Octubre 2016, 16:54 pm
por Eleкtro
|
|