Hola amigos,
hace tiempo vengo creando en mi oficina un menú avanzado en batch (como se describe en el título)
Ahora pues, necesito vuestras aportaciones y respuestas para poder reparar fallos, o simplemente aportar nuevas ideas.
Programa:
color 1A
Title Le saluda RTN-House
set/p nombre=Escribe tu nombre y oprime Enter.
set/p apellido=Escribe tu primer apellido:
set/p apellido2=Escribe tu segundo apellido:
cls
cls
cls
color a
ECHO Introduce la contraseña:
if %password%==[b]neilblack[/b]
goto OK
:NO_OK
ECHO Password incorrecta...
ECHO Pulsa una tecla para volver a intentarlo...
:OK
ECHO ¡¡Contraseña correcta
!! cls
cls
ECHO CARGANDO: ÛÛÛÛÛÛÛÛÛÛ
cls
:Start
Title Menu RTN-House \,,/
(-.-
)\,,/
cls
ECHO ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
ECHO ///..==[Bienvenido
%nombre% %apellido% %apellido2%]==..///
ECHO ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
echo 1 - Instant Shutdown
echo 2 - 5 Minute Count Shutdown
echo 5 - 5 Minute Count Restart
echo 9 - What's the Time, Exactly?
echo 13 - Normal Command Prompt Window
echo 14 - Remote -S -L -R Menu
echo 15 -
Goto Playlist.com
(When Online
) echo 16 - List of Blocked Websites
echo 22 - Chat With Other
(Same Networked
) Computers
echo 28 - Batch Calculator
if '
%Choice%'=='2'
goto fivemin
if '
%Choice%'=='5'
goto restart
if '
%Choice%'=='8'
goto refresh
if '
%Choice%'=='12'
goto face2
if '
%Choice%'=='14'
goto remote
if '
%Choice%'=='16'
goto blocked
if '
%Choice%'=='17'
goto taskmgr
if '
%Choice%'=='18'
goto matrix
if '
%Choice%'=='21'
goto paint
if '
%Choice%'=='24'
goto echoon
if '
%Choice%'=='25'
goto chara
if '
%Choice%'=='26'
goto antivirus
if '
%Choice%'=='28'
goto batcalc
cls
cls
:insta
cls
shutdown -s -t 0
:fivemin
shutdown -s -f -t 300 -c "You have 5 minutes to finish up"
:log
shutdown -f
msg * See You Soon!
:abort
shutdown -a
:teo
msg * ooo! hidden option! hahaha!
:1bla
echo T 3 E O T 3 E O T 3 E O T 3 E O T 3 E O T 3 E O T 3 E O T 3 E O T 3 E O
:restart
shutdown -r -t 300 -c "5 minutes left"
:inre
shutdown -r -t 0
:exit2
:refresh
cls
:time
Title Menu's Exact Military Time
cls
echo [ALT] + [ENTER] Activates/Deactivates Full Screen Mode
ping localhost -n .000000000000000000000001
>nulECHO PRESIONE ENTER PARA REGRESAR AL MENU
:anything?2
msg * Scroll Up
if You Don't See Anything.
ECHO PRESIONE ENTER PARA REGRESAR AL MENU
:face
start www.facebook.com
ECHO PRESIONE ENTER PARA REGRESAR AL MENU
:tree
tree C:/
ECHO PRESIONE ENTER PARA REGRESAR AL MENU
:anything?
ECHO PRESIONE ENTER PARA REGRESAR AL MENU
:face2
start http://69.63.181.16/
ECHO PRESIONE ENTER PARA REGRESAR AL MENU
:cmd
start
ECHO PRESIONE ENTER PARA REGRESAR AL MENU
:remote
shutdown -i
ECHO PRESIONE ENTER PARA REGRESAR AL MENU
:play
start www.playlist.com
ECHO PRESIONE ENTER PARA REGRESAR AL MENU
:blocked
notepad c:\WINDOWS\system32\drivers\etc\hosts
ECHO PRESIONE ENTER PARA REGRESAR AL MENU
:taskmgr
taskmgr.exe
ECHO PRESIONE ENTER PARA REGRESAR AL MENU
:matrix
color 2
echo %random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random% ECHO PRESIONE ENTER PARA REGRESAR AL MENU
:32
START C:/WINDOWS/System32
ECHO PRESIONE ENTER PARA REGRESAR AL MENU
:calc
C:/windows\system32\calc.exe
ECHO PRESIONE ENTER PARA REGRESAR AL MENU
:paint
C:\WINDOWS\SYSTEM32\mspaint.exe
ECHO PRESIONE ENTER PARA REGRESAR AL MENU
:chat
C:\WINDOWS\SYSTEM32\winchat.exe
ECHO PRESIONE ENTER PARA REGRESAR AL MENU
:correct
cls
ECHO PRESIONE ENTER PARA REGRESAR AL MENU
:hinthelp
cls
echo It's My PSP's Password
cls
ECHO PRESIONE ENTER PARA REGRESAR AL MENU
:stupid
cls
msg *
do you think i'm that stupid?
!msg * I'm Insulted!
ECHO PRESIONE ENTER PARA REGRESAR AL MENU
cls
ping localhost -n 10
>nulECHO PRESIONE ENTER PARA REGRESAR AL MENU
:echoon
ECHO PRESIONE ENTER PARA REGRESAR AL MENU
:chara
C:\WINDOWS\SYSTEM32\CHARMAP.exe
ECHO PRESIONE ENTER PARA REGRESAR AL MENU
:anivirus
start "C:\Users\Xavi_2\Desktop\Programa XAVI\Complementos\PAR1Antivirus.bat"
ECHO PRESIONE ENTER PARA REGRESAR AL MENU
:PIKA
color 0c
CLS
echo `/ooooooooooooo+/-` `oooooooooooooooooooo+ `/sso- `ooooo.
echo /yyyyyyyyyyyyyyyyyy+``yyyyyyyyyyyyyyyyyyyys :
yyyyyo. `yyyyy-
echo /yyyys::::::::+syyyys.///////+yyyyy+/////// /yyyyyyy/` `yyyyy-
echo /yyyys .yyyyy/ -yyyyy` /yyyyyyyys: `yyyyy-
echo /yyyys .syyyy/ -yyyyy` :
yyyyyyyyyyo- `yyyyy-
echo /yyyys--------/syyyys` -yyyyy` :
yyyys-oyyyyy+` `yyyyy-
echo /yyyyyyyyyyyyyyyyyy+` -yyyyy` :
yyyys` :
syyyyy/.yyyyy- echo /yyyyyooooosyyyyy+` -yyyyy` :
yyyys `/yyyyysyyyyy-
echo /yyyys /yyyyy/ -yyyyy` :
yyyys` .oyyyyyyyyy-
echo /yyyys :
yyyyy+` -yyyyy` :
yyyys -syyyyyyy-
echo /yyyys -yyyyyo` -yyyyy` :
yyyys `/syyyyy-
echo /yyyyo .syyyys. -yyyyy` :
yyyys` `+yyyo`
echo ```` ````` ````` ```` ```
ECHO PRESIONE ENTER PARA REGRESAR AL MENU
:batcalc
cls
:begin
echo --------------------------------------------------------------
echo Welcome to Batch Calculator
echo --------------------------------------------------------------
echo --------------------------------------------------------------
cls
ECHO PRESIONE ENTER PARA REGRESAR AL MENU
Podemos implantar un sistema de protección de contraseñas muy efectivo (para principiantes), el sistema de shutdown:
color a
:question
:top
echo Please Enter Password
echo ----------------------------------------------
echo %tries% attempt
(s
) left.
echo ----------------------------------------------
if %pass%==systemxavi
goto correct
rem !!!!!!!!!!!!!!!!!!!!4123 can be substituted with anything, cause it's your password!!!!!!!!!!!!!!!!!
cls
:penalty
echo Sorry, too many incorrect passwords, initiating shutdown.
start shutdown -s -f -t 300 -c "Should have asked
for permission...SHUTDOWN INITIATED"
Acoplar un menú un poco más "fantasioso":
MODE
CON: COLS=89 LINES=35
color a
echo MOMENTO DE EJECUCION: ³
echo FECHA -
%DATE%. ³ creado por RTN-House
echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo ³ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ³
echo ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄij º RTN v0.2.7 º ³ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
echo ³ ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ³
echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo Ú-------------Á--------------¿
echo Ý ELIMINA EL VIRUS OCULTA Ý
echo Ý CARPETAS, ACCESOS DIRECTOS Ý
echo Ý Y EJECUTABLES INFECTADOS Ý
echo À---------------------------Ù
echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo ³ 1.- ELIMINAR VIRUS DE USB ³
echo ³ 2.- INFOMACION
DEL PROGRAMA ³
echo ³ 3.- SALIR
(CTRL+C
) ³
echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
O por otra parte darle un diseño
con cuadrados, tal que así:
ECHO. ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO. ³1³ ³ AGREGAR ATENCION ³
ECHO. ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ECHO. ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO. ³2³ ³ ELIMINAR ATENCION ³
ECHO. ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ECHO. ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO. ³3³ ³ VISUALISAR ATENCIONES ³
ECHO. ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ECHO. ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO. ³4³ ³ ATENCIONES ELIMINADAS ³
ECHO. ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ECHO. ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO. ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
PD: la contraseña del programa es neilblack
Saludos y aporten ideas.
Desde el PC, RTN'House
Buenas!
1) Debes utilizar las etiquetas para insertar código.
2) ¿Por qué motivo posteas un Batch-Script en el subforo de C++?, sabes perfectamente que este no es el lugar permitido, ya que te has paseado por la sección de Scripting.
Lee las normas del foro...
Saludos!
EDITO:No he examinado a fondo el código, ya que con la cita y sin etiquetas geshi... dificulta la lectura.
1) Haces demasiada repetición de código, los strings que repites deberías almacenarlos en una variable, y utilizarla.
2) De hecho, las 20 o 30 repeticiones que haces de estas instrucciones:
ECHO PRESIONE ENTER PARA REGRESAR AL MENU
pause >nul
goto :menu
Las puedes simplificar poniéndolas en un único método, y llamarlo en una sola instrucción.
2) El backslash en Windows se escribe "\", no "/", está considerado una mala práctica de programación.
3) Las condicionales de "If %choice%==" puedes simplificarlo en una sola instrucción dinámica, utilizando el comando CHOICE.exe (Goto :%ErrorLevel%), aunque para ello primero deberás modificar el nombre de las etiquetas de los métodos, por índices númericos (:1, :2, etc...).
4) En lugar de escribir rutas absolutas que apunten hacia archivos del sistema, lo correcto es utilizar las variables de entorno (%SystemRoot%\System32\...)
EDITO:5) La instrucción que usas para simular el efecto Matrix, usando una linea de miles de caracteres, es simplemente lo más horrible que he visto, pero no por la técnica en sí, sino por que dificulta la lectura del código tener que desplazarse horizontalmente para leer la linea... no es nada productivo, horrible.
Al menos podrias haber hecho una especie de indentación utilizando varias repeticiones del comando Echo, te sugiero que edites el código que has posteado arriba para mejorar ese detalle por que de verdad es muy agobiante ver instrucciones tan largas en un código...
Busca el modo de reemplazar esa instrucción apra hacer lo mismo en menos lineas, como por ejemplo así:
:matrix
color 2
ECHO PRESIONE ENTER PARA REGRESAR AL MENU