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
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.
eso ya lo se lo que quiero saber es como crear un menu en bath que agrege otras sin entrar al codigo XD
Aquí tienes un menú, y sin usar SETLOCAL.
(http://img805.imageshack.us/img805/9674/prtscrcapturel.jpg) (http://img40.imageshack.us/img40/1897/prtscrcapture2v.jpg)
@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
muchas gracias elektro