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

 

 


Tema destacado: Estamos en la red social de Mastodon


  Mostrar Mensajes
Páginas: 1 [2] 3
11  Programaci๓n / Scripting / Re: [Batch] Ayuda con c๓digo en: 13 Octubre 2013, 12:47 pm
Cierto culpa mia por no explicarme bien  :xD

lo que pretendo es que el for carge el contenido del archivo activados.txt y use la funcion call para cada uno de esos archivos, pero que valla directamente a la etiqueta :AUTORUN que tendran los archivos.

ejemplo de los archivos a llamar:

Código:
@echo off
@Echo OFF & Color 70 & MODE con cols=75
title ejemplo

:MAIN
echo.
echo Hola |MORE
pause
exit

:AUTORUN
echo.
echo adios |MORE
pause
exit
12  Programaci๓n / Scripting / Re: [Batch] Ayuda con c๓digo en: 12 Octubre 2013, 13:42 pm
gracias por la ayuda, ya consegui que funcione   ;-), dejo el codigo por si alguien le sirve de ayuda para otra cosa:

Código:
@Echo OFF & Color 70 & MODE con cols=75
Title Animefiles 1.3.2

REM CD Plugins
if not exist ".\Plugins\Activados.txt" (
--------->".\Plugins\Activados.txt"
)

:MAIN
cls
SETLOCAL EnableDelayedExpansion
Set "Directory=%CD%\plugins"

For %%# in (
"%Directory%\*.bat"
) Do (
Set /A "FileCount+=1"
Set "File!FileCount!=%%~nx#"
)
echo.
echo ออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออ |MORE
For /L %%X in (1, 1, !FileCount!) Do (
REM Type "%Directory%\activados.txt" | Findstr /V /I "!File%%X!" do (set info=Activado)
Type "%Directory%\activados.txt" | Findstr /I "!File%%X!" 1>NUL 2>&1 && (
set "info=Activado"
) || (
set "info=Desactivado"
)
REM if not defined info (set info=Desactivado)
REM Echo %%X. !File%%X! %info% | MORE
Echo %%X. !File%%X! !info! | MORE
)
echo ออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออ|MORE
echo que quiere hacer? (Activar/desactivar)
echo.
set/p "menu=>"
if not defined menu (
ENDLOCAL
goto :MAIN
)
if %menu%==Activar goto ACTIVAR
if %menu%==ACTIVAR goto ACTIVAR
if %menu%==activar goto ACTIVAR
if %menu%==Desactivar goto DESACTIVAR
if %menu%==DESACTIVAR goto DESACTIVAR
if %menu%==desactivar goto DESACTIVAR
cls
echo.
echo Opcion no valida. |MORE
pause
ENDLOCAL
goto MAIN

:DESACTIVAR
echo.
echo Elija el plugin que quiere desactivar:
echo.
Set /P "SelectFiles=>"
Set SelectFiles2=%SelectFileS%.bat
Type "%Directory%\activados.txt" | Findstr /V /I "%SelectFiles2%">"%Directory%\activados.tmp"
Del /Q "%Directory%\activados.txt"
Rename "%Directory%\activados.tmp" "activados.txt"
cls
echo.
echo Plugin desactivado. |MORE
pause
goto END

:ACTIVAR
echo.
echo Elija el plugin que quiere activar:
echo.
Set /P "SelectFiles=>"
Set SelectFiles2=%SelectFileS%.bat
CD Plugins
if not exist %selectfiles2% (goto ERROR)
echo %selectfiles2%>>Activados.txt
cls
echo.
echo Plugin activado. |MORE
pause
goto END

:ERROR
cls
echo ษอออออออออออป
echo บ   ERROR   บ
echo ศอออออออออออผ |MORE
echo No existe un plugin con ese nombre. |MORE
Pause
goto END

:END
CD..
Start Animefiles
Exit


EleKtro H@cker la parte de:
Código:
--------->Activados.txt

es solo para que el bat cree un archivo vacio llamado activados.txt, de la forma que tu lo pusiste el archivo contiene -----------

EDITO:Tengo una duda, esto funcionaria? o en caso de que no cual seria la forma correcta de escribirlo?

Código:
FOR %%A IN ("activados.txt") DO (
               call %%A  & goto :AUTORUN
)
13  Programaci๓n / Scripting / [Batch] Ayuda con c๓digo en: 11 Octubre 2013, 16:24 pm
Hola, alguien podria decirme donde me estoy equivocando?

Tengo este code:

Código:
@Echo OFF & Color 70 & MODE con cols=75
Title Animefiles 1.3.2

CD Plugins
if not exist Activados.txt (
--------->Activados.txt
)

:ACTIVAR
cls
SETLOCAL EnableDelayedExpansion
Set "Directory=%CD%\plugins"

For %%# in (
"%Directory%\*.bat"
) Do (
Set /A "FileCount+=1"
Set "File!FileCount!=%%~nx#"
)
echo.
echo ออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออ |MORE
For /L %%X in (1, 1, !FileCount!) Do (
Type "%Directory%\activados.txt" | Findstr /V /I "!File%%X!" do (set info=Activado)
if not defined info (set info=Desactivado)
Echo %%X. !File%%X! %info% | MORE
)
echo ออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออ|MORE
echo Seleccione el plugin que desea activar:
echo.
Set /P "SelectFiles=
Set "SelectFiles=%SelectFiles: =%"
For %%# in (%SelectFiles%) Do (
Echo "!File%%#!" >> Activados.txt
)
pause
exit

El programa se encuentra en la ruta .\Programfiles\Animefiles y tanto los bat como el archivo Activados.txt en el subdirectorio Plugins. Lo que intento es que el for a la vez que imprime en pantalla los bat disponibles en la carpeta plugins, compare sus nombres con los almacenados en el archivo Activados y segun eso, la variable info imprima desactivado si no estan o activado si estan en la lista.

14  Programaci๓n / Scripting / Re: [batch] error con findstr en: 10 Octubre 2013, 20:10 pm
Aprovecho el tema para preguntar un par de dudas que me han surgido al analizar la simplificaci๓n del code:

La primera es que hace esta linea:
Código:
PUSHD "%Directory%" 2>NUL || (Call :ERROR "1")

Y la segunda no entiendo el funcionamiento de estos if y para que sirve POPD

Código:
:ERROR
cls
echo ษอออออออออออป
echo บ   ERROR   บ
echo ศอออออออออออผ |MORE
If "%~1" EQU "1" (Echo No existe un directorio con ese nombre. |MORE)
If "%~1" EQU "2" (Echo No existe una lista con ese nombre. |MORE)
Pause
POPD

Si alguien me puede ayudar a resolver estas dudas...
15  Programaci๓n / Scripting / Re: [Batch] ayuda con menu bat en: 9 Octubre 2013, 17:44 pm
Gracias! lo intentare por este metodo si lo consigo colgare el codigo por si alguien tiene el mismo problema.
16  Programaci๓n / Scripting / Re: [batch] error con findstr en: 9 Octubre 2013, 17:37 pm
Gracias por la ayuda!

Parece ser que el findstr no admitia la ruta mediante variables asi que puse la ruta directamente y funciona perfectamente:

Código:
Type "C:\Program Files\Animefiles\Files\%File%" | Findstr /V /I "%borrar%">"C:\Program Files\Animefiles\Files\%File%.tmp"
pause
Del /Q "C:\Program Files\Animefiles\Files\%File%"
Rename "C:\Program Files\Animefiles\Files\%File%.tmp" "%File%"

En verdad asi me vale ya que el programa se encuentra en una ruta estatica. Gracias por el esfuerzo y la ayuda.

Solucionado!
17  Programaci๓n / Scripting / Re: [Batch] ayuda con menu bat en: 9 Octubre 2013, 17:15 pm
Una cantidad indefinida, el menu deberia ser como una lista con todos los plugins que se hayan instalado en la carpeta plugins, para que el usuario eligiera cual quiere activar y cual no.
18  Programaci๓n / Scripting / Re: [Batch] ayuda con menu bat en: 9 Octubre 2013, 17:06 pm
Perdon es mi culpa por no especificar. Estoy haciendo un programa bat que funciona mediante una serie de plugins bat que estan en una subcarpeta llamada Plugins.

El programa ejecuta automaticamente todos los plugins dentro de esa carpeta, pero tiene un inconveniente, que el programa ejecuta cada plugin por su nombre, que ya viene incluido en una linea dentro del propio bat principal y que el menu es estatico.

lo que yo necesito hacer y no se como es que el programa lea los nombres de los plugins almacenados en la carpeta y me muestre los nombres de esos plugins como un menu para elegir cuales quiero que se ejecuten junto con el programa al iniciar y cuales no.

Siento la confusion.

19  Programaci๓n / Scripting / Re: [batch] error con findstr en: 9 Octubre 2013, 16:36 pm
Solucionado el problema del for, pero sigue sin borrar el registro del txt sino que cierra el programa directamente.

Pongo el codigo modificado:

Código:
@echo off
title Animefiles 1.3.2
COLOR 70
mode con: cols=75
set "ruta1=.\Files"
:RETURN
CD Files
cls
echo.
echo ษอออออออออออออออออออออออป
echo บ  Eliminar un anime    บ
echo ศอออออออออออออออออออออออผ |MORE
echo ออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออ |MORE
Dir /b
echo ออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออ |MORE
Echo introduzca la lista de donde quiere eliminar un anime:
echo.
set/p "anime=>"
if not exist %anime%.txt goto ERROR2
if not defined anime goto RETURN
:RESETDEL
cls
echo.
echo ออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออ |MORE
FOR /F "usebackq delims=" %%A IN ("%anime%.txt") DO (Echo.%%A) | MORE
echo ออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออ |MORE
echo Para salir del modo, cerrar el programa. |MORE
echo Seleccione el anime a borrar:
echo.
set/p "borrar=>"
if not defined borrar goto resetdel
echo.
Type "%ruta1%\%anime%.txt" | findstr /V /I "%borrar%">"%ruta1%\%anime%.tmp"
Del /Q "%ruta1%\%anime%.txt"
Rename "%ruta1%\%anime%.tmp" "%anime%.txt"
cls
echo.
echo el anime ha sido eliminado satisfactoriamente. |MORE
pause
goto RESETDEL

:ERROR2
cls
echo ษอออออออออออป
echo บ   ERROR   บ
echo ศอออออออออออผ |MORE
echo No existe una lista con ese nombre. |MORE
pause
CD..
start Animefiles
exit

Llevo varias semanas comiendome la cabeza con este problema, sino se puede asi me vale alguna otra solucion. thaks!
20  Programaci๓n / Scripting / Re: [batch] error con findstr en: 9 Octubre 2013, 16:20 pm
Gracias! lo de la variable code es que le habia cambiado el nombre y no me di cuenta de sustituirlo en el if.

Pero sigue sin funcionar y ahora al sustituir el for al ejecutar en vez de mostrarme el contenido me pone:

No se esperaba = delims=" en este momento.

A que se debe?
Páginas: 1 [2] 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines