menu bath cambiar codigo

Iniciado por asdexiva, 14 Enero 2013, 19:11 PM

0 Miembros y 1 Visitante están viendo este tema.

asdexiva

lo que quiero hacer es que pueda agregar o quitar extensiones a copiar con un menu pero no tengo la minima idea queria ver si me podian ayudar


(FOR /R "%userprofile%\Mis documentos\" %%a IN (*.doc,*.txt)  DO  (copy /y "%%a" "E:\datossss\"))
(FOR /R "%userprofile%\escritorio\" %%a IN (*.doc,*.txt)  DO  (copy /y "%%a" "E:\datossss\"))


lo que quiero cambiar es *.doc,*.txt agregar mas extensiones a copiar espero me entiendan :S

-- KiLiaN --

sencillamente añade otra coma seguido de otro asterisco y la extensión y así cuantas quieras, todo esto en los paréntesis donde están las extensiones.
Entren al chat de elhacker.net
    
   

@kln13

asdexiva

eso ya lo se lo que quiero saber es como crear un menu en bath que agrege otras sin entrar al codigo XD

Eleкtro

#3
Aquí tienes un menú, y sin usar SETLOCAL.

   

Código (dos) [Seleccionar]
@Echo OFF


:: By Elektro H@cker


Set "DefaultExt=bat doc cmd exe txt"

:MENU
CLS
Set /A "Count=0"
For %%@ in (%DefaultExt%) DO (
SET /A Count+=1 & REM Sumo un valor en el contador
Call SET "EXT%%COUNT%%=%%@" & REM Creo la variable dinámica que contendrá cada extensión
Call <Nul SET /P =[%%COUNT%%] %%@ & REM Muestro las extensiones
REM Si quieres la lista en horizontal en lugar de vertical elimina la línea del echo
Echo+
)
Echo+
Choice /C AEN /m "[A]Agregar, [E] Eliminar, [N] Nada"
If %errorlevel% EQU 1 (CALL :Agregar)
If %errorlevel% EQU 2 (CALL :Eliminar)
If %errorlevel% EQU 3 (GOTO :Copiar)
GOTO :MENU

:Agregar
CLS
Echo: [ Agregar extension ] | MORE
SET /p "ADDEXT= AGREGA UNA EXTENSION >> "
IF NOT DEFINED ADDEXT (GOTO :Agregar)
SET "ADDEXT=%ADDEXT:.=%" & REM Elimino cualquier punto
SET "ADDEXT=%ADDEXT: =%" & REM Elimino cualquier espacio
SET "DefaultExt=%DefaultExt% %ADDEXT%" & REM Añado la nueva extensión a la lista de extensiones
GOTO :EOF

:Eliminar
CLS
Echo: [ Eliminar extension ] | MORE
Set "ChoiceDigits=" & REM Reseteo la variable
For /L %%X in (1,1,%COUNT%) DO (
Call Echo [%%X] %%EXT%%X%% & REM Muestro las variables que creé en el menú
Call Set "ChoiceDigits=%%ChoiceDigits%%%%X" & REM Seteo las opciones del comando CHOICE
)
Echo+
Choice /C %ChoiceDigits%N /M "[N] Ninguna"
Call Set "DEL_EXT=%%EXT%ERRORLEVEL%%%" & REM Seteo la extensión elegida
call SET "DefaultExt=%%DefaultExt:%DEL_EXT%=%%" & REM Elimino la extensión de la lista
call SET "DefaultExt=%%DefaultExt:  = %%" & REM Elimino dobles espacios si quedasen.
GOTO:EOF

:Copiar
CLS
Set "DefaultExt=%DefaultExt: = ,*.%" & REM Modifico los espacios de la variable para añadirlo los símbolos necesarios
FOR %%a IN (*.%DefaultExt%) DO (echo "%%a")
:: FOR /R "%userprofile%\Mis documentos\" %%a IN (*.%DefaultExt%) DO (copy /y "%%a" "E:\datossss\")

Pause&Exit


Saludos








asdexiva