Ahora mismo no recuerdo la sintaxis que se debía usar para referirse a una carpeta sin nombre (una carpeta con nombre reservado de windows), pero poder, se puede eliminar desde la consola.
Aunque me parece mucho más sencillo y eficaz hacer lo siguiente:
1. Mover los archivos a una carpeta temporal (filtrando los archivos indeseados) conservando la estructura de las carpetas.
2. Formatear el pendrive (para eliminar la carpeta incompatible, y la basura).
3. Mover los archivos de nuevo al pendrive.
Si se tratase de un HDD no apoyaría lo de formatear para solucionar ese problema, pero siendo un simple USB... me parece lo más rápido.
Saludos!
Aunque me parece mucho más sencillo y eficaz hacer lo siguiente:
1. Mover los archivos a una carpeta temporal (filtrando los archivos indeseados) conservando la estructura de las carpetas.
2. Formatear el pendrive (para eliminar la carpeta incompatible, y la basura).
3. Mover los archivos de nuevo al pendrive.
Si se tratase de un HDD no apoyaría lo de formatear para solucionar ese problema, pero siendo un simple USB... me parece lo más rápido.
Código (dos) [Seleccionar]
@Echo OFF
Set "Drive=E"
Set "TempFolder=C:\Backup"
Set "RegEx=\.lnk$ \.tmp$ \.trashes$ autorun\.inf$"
:: Salvaguardar archivos
For /F "Tokens=*" %%# in ('Dir /B /S /A-D "*" ^| FINDSTR /V /I "%RegEx%"') Do (
:: Crear el directorio
If not exist "%TempFolder%\%%~p#" (
Echo [+] Creando directorio: "%TempFolder%\%%~p#"
MKDIR "%TempFolder%\%%~p#"
)
:: Copiar el archivo
Echo [+] Copiando archivo: "%%#"
Copy "%%#" "%TempFolder%\%%~p#\" 1>NUL
)
:: Formatear unidad
:: Echo s | Format "%Drive%:" /fs:fat32 /q
:: Restaurar archivos a la unidad
XCopy /E "%TempFolder%\*" "%Drive%:\"
Pause&Exit
Saludos!