Al principio parecia fácil, pero no lo es para nada, cuando arrastras los archivos, si tienen espacio apareceran con comillas dobles, y sino, sin comillas
Por eso, habia que separar el string en varios, no iba a funcionar con parámetros
En fin, Aqui tienen este experimento, La consola de reciclaje 1.0
PD: Odio crear contadores de este tipo
Código:
@Echo off
Title Consola de reciclaje v1.0
REM: By Elektro H@cker
:Basurero
:::::::::
Mode con cols=70 lines=20
Nircmd win center ititle "Consola de reciclaje" >nul 2>&1
Setlocal enabledelayedexpansion
Set min=0
Set max=1
Color 1f
Cls
Echo+
Echo: Arrastre hasta aqu¡ los archivos o carpetas que desea eliminar.
Echo+
Echo+
Set /P Archivos=^>^>^>
If not defined archivos (Goto :Basurero)
Echo %Archivos% | FIND ":" >NUL
If NOT %ERRORLEVEL% EQU 0 (Goto :Basurero)
Set archivos=%archivos%##
:FILTRAR
::::::::
cls
Echo+
Echo: Eliminando los archivos, Porfavor Espere...
Echo+
:Bucle
Echo !string! | find "#" >NUL 2>&1
call :limite
Set String=!archivos:~%min%,%max%!;
echo ^!string:~-2! | findstr ":" >NUL
If %errorlevel% equ 0 (
Set String=!string:~-3,2!\!String!
Set String=!string:^"=!
Set /A max+=1
Set /A Min+=!MAX!
Set max=1
call :ELIMINAR !String:~0,-3!
goto :Bucle
) else (
Set /A max+=1
Goto :Bucle
)
:Limite
if %errorlevel% equ 0 (
Set /A min-=3
Set /A max+=1
call :string_Final
call :ELIMINAR !String:~0,-1!
Goto :FIN
)
GOTO :EOF
:string_Final
Set String=!archivos:~%min%,%max%!;
Set String=!string:^"=!
goto :EOF
:ELIMINAR
:::::::::
If /I "%*" EQU "C:\" (GOTO :EOF)
If /I "%*" EQU "D:\" (GOTO :EOF)
If /I "%*" EQU "E:\" (GOTO :EOF)
If /I "%*" EQU "F:\" (GOTO :EOF)
If /I "%*" EQU "G:\" (GOTO :EOF)
If /I "%*" EQU "H:\" (GOTO :EOF)
:Archivo
For /F "Tokens=*" %%# IN ('echo "%*"') do (
Del /Q /F %%# >NUL 2>&1
Call :Carpeta %%#
)
GOTO :EOF
:Carpeta
If Exist %* (
Echo+
Echo: Eliminando carpeta: %*
RD /Q /S %*
) ELSE (
Echo+
Echo: Eliminando archivo: "%~nx1"
)
Goto :EOF
:FIN
::::
Cls
Echo+
Echo: Se han borrado todos los archivos.
Echo+
Pause
exit