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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Batch] Menu batch dinamico
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Batch] Menu batch dinamico  (Leído 8,132 veces)
shadowhunter

Desconectado Desconectado

Mensajes: 23


Ver Perfil
[Batch] Menu batch dinamico
« en: 1 Noviembre 2013, 11:43 am »

Necesito ayuda a encontrar donde falla este codigo:

Código:
@echo off & COLOR 70 & mode con: cols=75 lines=30
title Animefiles 1.3.2

@set ruta1= %CD%
Set "Directory=%CD%\plugins"

set sep=ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
SETLOCAL
CD Plugins
if exist autorun.txt (
<"autorun.txt" set /p "run="
call %run%
)
ENDLOCAL

:MENU
CD %ruta1%
cls
echo.
echo             ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo             º                 Animefiles                  º
echo             ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
echo             º   Version 1.3.2     º    By Shadowhunter    º
echo             ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ |MORE
echo Elija una opcion: |MORE
echo %sep%
echo 1 .Crear una nueva lista.
echo 2 .Ver listas.
echo 3 .Eliminar una lista.
echo 4 .Incluir un anime a una lista.
echo 5 .Eliminar un anime de una lista.
echo 6 .Buscar un anime.
echo 7 .Activar Plugins.
echo 8 .Abrir carpeta contenedora.
echo 9 .Ayuda.
echo 10.Salir.
echo ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
setlocal
For %%# in (
"%Directory%\*.bat"
) Do (
Set /A "FileCount+=1"
Set "File!FileCount!=%%~nx#"
)
For /L %%X in (1, 1, !FileCount!) Do (
Type "%Directory%\activados.txt" | Findstr /I "!File%%X!" 1>NUL 2>&1
Echo %%X. !File%%X! | MORE
)
endlocal
echo %sep%
echo.
set menu=0
set/p "menu=>"
if %menu%==1 goto CREAR
if %menu%==2 goto LISTAS
if %menu%==3 goto DEL
if %menu%==4 goto INDAT
if %menu%==5 goto DELANIME
if %menu%==6 goto BUSCAR
if %menu%==7 goto ACTIVAR
if %menu%==8 goto OPENC
if %menu%==9 goto MENU2
if %menu%==10 goto exit
cls
echo.
echo Opcion no valida. |MORE
pause
goto MENU

:CREAR
:LISTAS
:DEL
:INDAT
:DELANIME
:BUSCAR
:ACTIVAR
:OPENC
:MENU2
exit

El programa deberia de cargar una serie de nombres de archivos que estarian almacenados en activados.txt de la forma:

prueba1.bat
prueba2.bat
prueba3.bat
....

y mostrarlos como un menu de la forma:

1. prueba1
2. prueba2
3. prueba3
....

Pero no consigo que se muestre en pantalla, al igual que tambien deberia de cargar el nombre de un unico archivo almacenado en autorun.txt si existe y ejecutar ese archivo, pero me lo carga y no lo ejecuta.

agradezco cualquier ayuda u opinion al respecto.


« Última modificación: 1 Noviembre 2013, 15:38 pm por EleKtro H@cker » En línea

Almapa

Desconectado Desconectado

Mensajes: 111


Ver Perfil
Re: [Bach] Menu bach dinamico
« Respuesta #1 en: 1 Noviembre 2013, 12:49 pm »

Te falta por una parte activar o permitir la extensión de variables para que se puedan definir las variables, que como bien has escrito, van entre "!".

Código:
setlocal enabledelayedexpansion

Aquí tienes la explicación
http://ss64.com/nt/delayedexpansion.html


Mira a ver si es eso.
Un saludo.


En línea

shadowhunter

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: [Bach] Menu bach dinamico
« Respuesta #2 en: 1 Noviembre 2013, 15:15 pm »

gracias pero sigo sin poder eliminarle la extension y tambien me gustaria que empezara a partir del 10, pero al ponerlo hace cosas extrañas.

En línea

Almapa

Desconectado Desconectado

Mensajes: 111


Ver Perfil
Re: [Batch] Menu batch dinamico
« Respuesta #3 en: 1 Noviembre 2013, 18:33 pm »

Ahh perdón, me había dejado media respuesta XD
Cuando ejecutas la línea

Código:
Set "File!FileCount!=%%~nx#"

No puedes quitar la "x" del parámetro "~nx". Sabiendo que estás rastreando solo archivos .bat puedes guardar las variables sin la extensión y añadirle la extensión si es necesario a posteriori.
En línea

Almapa

Desconectado Desconectado

Mensajes: 111


Ver Perfil
Re: [Batch] Menu batch dinamico
« Respuesta #4 en: 1 Noviembre 2013, 18:37 pm »

Otra solución, que supongo que te gustará más es evitar la extensión solo a la hora de mostrarlo modificando la línea del ECHO.

Código:
Echo %%X. !File%%X:.bat=! | MORE

De este modo sustituyes el ".bat" por nada.


Un saludo
En línea

shadowhunter

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: [Batch] Menu batch dinamico
« Respuesta #5 en: 1 Noviembre 2013, 18:50 pm »

Muchas gracias almapa XD

 :D :D
En línea

shadowhunter

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: [Batch] Menu batch dinamico
« Respuesta #6 en: 1 Noviembre 2013, 19:03 pm »

pero el problema que tengo es que comienza a enumerar a partir de 1 yo quiero que empieze por el 11 y si modifico para que empiece desde 10 me da errores...

ayuda por favor!
En línea

Almapa

Desconectado Desconectado

Mensajes: 111


Ver Perfil
Re: [Batch] Menu batch dinamico
« Respuesta #7 en: 2 Noviembre 2013, 15:00 pm »

Como??? A ver si quieres que lo que se muestre sea

11. prueba1
12. prueba2
13. prueba3

Puedes crear una variable dentro del bucle que sea:

Código:
set /a variable=%%X+10

y mostrarla donde quieras que aparezca, en el caso que te proponía yo sería:

Código:
Echo !num!. !File%%X:.bat=! | MORE


Si de verdad quieres aprender, este tipo de fallo lo deberías investigar e intentar solucionar tu solo, pero en cuestión de 10 minutos no creo que hayas investigado mucho  ;)

Un saludo

En línea

shadowhunter

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: [Batch] Menu batch dinamico
« Respuesta #8 en: 2 Noviembre 2013, 15:42 pm »

Si ofender, pero si pido ayuda es por que no consigo que me funcione  :xD

Precisamente habia intentado poniendo como tu me propones:

Código:
set /a variable=%%X+10

pero en ese caso, la variable no me imprime en pantalla nada, solo imprime
Código:
!File%%X:.bat=!
En línea

Almapa

Desconectado Desconectado

Mensajes: 111


Ver Perfil
Re: [Batch] Menu batch dinamico
« Respuesta #9 en: 3 Noviembre 2013, 09:13 am »

A mi así:
Código:
For %%# in (
"%Directory%\*.bat"
) Do (
Set /A "FileCount+=1"
Set "File!FileCount!=%%~nx#"
)
For /L %%X in (1, 1, !FileCount!) Do (
set /a num=%%X +10
Type "%Directory%\activados.txt" | Findstr /I "!File%%X!" 1>NUL 2>&1
Echo !num!. !File%%X:.bat=! | MORE
)


me saca esto:

11. prueba1
12. prueba2
13. prueba3
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Menu en Batch - DOS
Scripting
ruizse01 1 3,156 Último mensaje 17 Agosto 2008, 22:04 pm
por leogtz
Menú de selección en Batch
Scripting
Binary_Death 8 4,741 Último mensaje 5 Agosto 2010, 23:31 pm
por Binary_Death
[BATCH] Creando un menu
Scripting
barnix456 7 6,104 Último mensaje 24 Febrero 2011, 19:40 pm
por juanbass
[Batch] Insertar un batch dentro de un batch que fabrique un .txt
Scripting
$pedrojo2704 2 6,235 Último mensaje 23 Agosto 2012, 10:08 am
por $pedrojo2704
[Batch] ayuda con menu bat
Scripting
shadowhunter 8 3,851 Último mensaje 9 Octubre 2013, 17:44 pm
por shadowhunter
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines