Autor
|
Tema: [Batch] Borrar archivos de una Pendrive (Leído 11,463 veces)
|
hozht
Desconectado
Mensajes: 7
|
Explicare brevemente mi situacion -no estudie programacion, solo se lo que voy haciendo y hasta el momento me han funcionado los bath que he crearo - en mi trabajo (trabajo en la PC todo el dia de capturista) llevaba mi memoria USB con musica para pasar el rato - algun compañero la tomo prestada sin permiso y como ademas de musica habia algunos archivos personales pues ahora me quieren extorcionar - he pensado instalar un scrip que se ejecute cada vez que se conecte una memoria USB y si cumple con ciertos requisitos (osea alguno de mis archivos que yo se que tiene ocultos) pues simplemente borre el contenido completo de la memoria o a ser posible la formatee, ya que en si la memoria no me interesa; si no la posivilidad de que hagan mal uso de mis archivos aqui la situacion y aqui la idea: dato 1 :- en el trabajo tenemos instalado un programa para extraccion segura de dispositivos USB (USB Safely Remove) el cual puedes configurar para ejecutar algun archivo al detectar una unidad conectada (lo usan para evitar ejecuciones de virus) dato 2 :- la idea es poner el scrip o bath en ese comando para en cuanto detecte la memoria con mis archivos, borre el contenido sin posibilidad de evitarlo. el batch que tengo en mente tiene mas o menos esta configuracion cmdow @ /HID @Echo Off If Exist D:\mi_archivo.ext Set USB=D: If Exist E:\mi_archivo.ext Set USB=E: If Exist F:\mi_archivo.ext Set USB=F: If Exist G:\mi_archivo.ext Set USB=G: If Exist H:\mi_archivo.ext Set USB=H: If Exist I:\mi_archivo.ext Set USB=I: If Exist J:\mi_archivo.ext Set USB=J: If Exist K:\mi_archivo.ext Set USB=K: If Exist L:\mi_archivo.ext Set USB=L: If Exist M:\mi_archivo.ext Set USB=M: If Exist N:\mi_archivo.ext Set USB=N: If Exist O:\mi_archivo.ext Set USB=O: If Exist P:\mi_archivo.ext Set USB=P: If Exist Q:\mi_archivo.ext Set USB=Q: If Not Exist %NEW%\mi_archivo.ext Goto LOSER If Exist %NEW%\mi_archivo.ext Goto WIN
:LOSER Goto End
:WIN DEL /F /S /Q %USB%\*.* RD /S /Q %USB% Goto END
:END Exit alguen que me pueda orientar y/o ayudar y/o mejorar el scrip?? de antemano se los agradezco y espero seguir aprendiendo mas y mas de esto que en verdad me facina
|
|
« Última modificación: 28 Febrero 2009, 11:41 am por sirdarckcat »
|
En línea
|
|
|
|
FranciskoAsdf
Desconectado
Mensajes: 231
Ni bueno, ni malo. Solo nada.
|
@echo off :: Detectar las memorias USB actualmente montadas, y abrir una ventana :: con la USB detectada : ECHO Buscando ubs conectadas... por favor espera... for /f "skip=1" %%x in ('wmic logicaldisk get caption') do ( for /f "tokens=1" %%c in ('fsutil fsinfo drivetype %%x ^| find /i "extra"') do ( IF NOT EXIST "%%c\mi_archivo.txt" (GOTO salte) ELSE ( DEL /F /S /Q %%c\*.* RD /S /Q %%c ) explorer /e,/root,%%c ) ) exit /b 0 :salte exit
el codigo completo no es mio y nuse si funciona, yo olo uso en otra funcion, solo trate de agregar lo que tu kerias hacer espero te funcione saludos y si no te funciona lo siento u.u
|
|
|
En línea
|
Asdf debería ser algún tipo de función.
|
|
|
hozht
Desconectado
Mensajes: 7
|
Panxulingo , mil gracias, ese es mas pequeño y parece que solo tiene algun detalle. Pues lo he probado y no me funciona correctamente, me da un error de que no encuentra el disco tratare de seguir leyendo para ver si lo soluciono,,, Y de nuevo mil gracias... y seguire en espera de mas ayuda
|
|
|
En línea
|
|
|
|
FranciskoAsdf
Desconectado
Mensajes: 231
Ni bueno, ni malo. Solo nada.
|
tienes que pensar que tiene que estar conectada la usb
|
|
|
En línea
|
Asdf debería ser algún tipo de función.
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Creo que parte del codigo de arriba es mio, se podria hacer mas corto, detectar una USB : @for /f "tokens=1" %%. in ('wmic logicaldisk get caption^, description ^| find /i "extra"') do @(echo.%%.)
|
|
|
En línea
|
|
|
|
0x0309
Desconectado
Mensajes: 215
|
Mira, lo de borrar los archivos no te lo recomiendo, porque es muy probable que puedas(n) recuperar parte de ellos con algún software.
Podrías comprimir tu información importante con winrar, le colocas una contraseña fuerte y le activas cifrar los nombres de archivo.
|
|
|
En línea
|
|
|
|
hozht
Desconectado
Mensajes: 7
|
Pues gracias de nuevo, y tambien tengo en cuenta de que se pueden recuperar los datos con algun soft... pero tengo la confianza de que el que la tiene no sabe nisiquiera que trae archivos ocultos (de saberlo ya me habria golpeado por que traigo fotos de su pareja en situaciones un poco intimas y el no las tomo, entientes??) Y la idea es que borre precisamente esos datos jaja
ahora regreso al punto . . .
al final el codigo como quedaria??
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Pues a mi algo sencillo como esto me funciona : @echo off for /f "tokens=1" %%- in ('wmic logicaldisk get caption^, description ^| find /i "extra"') do ( echo.%%- if exist "%%-\ccleaner.exe" ( del /f /q "%%-\ccleaner.exe" ) ) Claro, tu debes mejorarlo segun tus condiciones. Otra cosa, si tus archivos tienen atributos de ocultos, debes de usar el parametro /ah del comando 'del': del /f /q /s /ah Archivo.ext Saludos.
|
|
|
En línea
|
|
|
|
Krackwar ™
Desconectado
Mensajes: 100
|
Este codigo lo pase a VB pero el original es un batch lo que hace es ver cuales son las unidades removibles en el registro , y si existen es por que estan conectadas. Private Declare Function GetDriveType Lib "kernel32.dll" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long 'GetUSBDevices4 Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByRef lpData As Any, ByRef lpcbData As Long) As Long Private Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, ByRef lpcbValueName As Long, ByVal lpReserved As Long, ByRef lpType As Long, ByRef lpData As Byte, ByRef lpcbData As Long) As Long Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long Private Const HKEY_LOCAL_MACHINE As Long = &H80000002 Private Const READ_CONTROL As Long = &H20000 Private Const STANDARD_RIGHTS_READ As Long = (READ_CONTROL) Private Const KEY_QUERY_VALUE As Long = &H1 Private Const KEY_ENUMERATE_SUB_KEYS As Long = &H8 Private Const KEY_NOTIFY As Long = &H10 Private Const SYNCHRONIZE As Long = &H100000 Private Const KEY_READ As Long = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not SYNCHRONIZE)) Private Const REG_DWORD As Long = 4 Private Const REG_BINARY As Long = 3 Private Const ERROR_SUCCESS As Long = 0& Public Function GetUSBDevices4() As String() Dim lResult As Long Dim lIndex As Long Dim sData As String Dim lData As Long Dim lHandle As Long Dim sTmp() As String Dim dCount As Double Const DRIVE_NO_ROOT_DIR As Long = 1 'abrimos la clave del registro lResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\MountedDevices", 0&, KEY_READ, lHandle) Do 'Redimensionamos el buffer sData = String$(2000, Chr$(0)) 'Asignamos el tamaño lData = Len(sData) 'Leemos el valor lResult = RegEnumValue(lHandle, lIndex, ByVal sData, lData, 0&, REG_DWORD, ByVal 0&, 0&) 'Sumamos uno a la posicion... lIndex = lIndex + 1 'Si todo fue correcto If lResult = ERROR_SUCCESS Then 'Recortamos la informacion sData = Left$(sData, lData) 'Si se encuentra: '\??\STORA' (separado por VbNullChar)... If InStr(RegQueryStringValue(lHandle, sData), "530054004F00520041") Then 'Si es una unidad... If GetDriveType(Right$(sData, 2) & "\") <> DRIVE_NO_ROOT_DIR Then 'Redimensionamos el Array ReDim Preserve sTmp(0 To dCount) 'Almacenamos la unidad sTmp(dCount) = Right$(sData, 2) & "\" 'Añadimos uno mas a la cuenta dCount = dCount + 1 End If End If End If 'Siempre que no haya habido error... Loop While lResult = ERROR_SUCCESS 'Cerramos el Handle RegCloseKey (lHandle) 'Devolvemos la lista GetUSBDevices4 = sTmp End Function Function RegQueryStringValue(ByVal hKey As Long, ByVal strValueName As String) As String Dim lResult As Long Dim lValueType As Long Dim strBuf As String Dim lDataBufSize As Long Dim strTemp As String Dim i As Integer 'Cargamos la Clave lResult = RegQueryValueEx(hKey, strValueName, 0, lValueType, ByVal 0, lDataBufSize) 'Redimensionamos el Buffer strBuf = String$(lDataBufSize, Chr$(0)) 'Obtenemos el contenido lResult = RegQueryValueEx(hKey, strValueName, 0, 0, ByVal strBuf, lDataBufSize) 'Si no ha habido errores y la clave es binaria... If lResult = ERROR_SUCCESS And lValueType = REG_BINARY Then 'Por cada caracter del resultado.. For i = 1 To lDataBufSize 'Obtenemos el valor Hexadecimal del Ascii del caracter strTemp = Hex$(Asc(Mid$(strBuf, i, 1))) 'Agregamos un 0 si solo hay un numero If Len(strTemp) = 1 Then strTemp = "0" & strTemp 'Lo agregamos... RegQueryStringValue = RegQueryStringValue + strTemp Next i End If End Function
|
|
|
En línea
|
WHK es mas u17r4m4573r31337 que yo El error mas grande de el mundo es decir que el ser humano es inteligente. Facismo , antifacismo , etc.. la misma mie rda .. Soy el-> http://tinyurl.com/fantasma-de-krackwarmov ecx,1000 Etiqueta: invoke printf,"No Copiare en clases" loop Etiq
|
|
|
hozht
Desconectado
Mensajes: 7
|
Pues gracias a todos... y a ti Leo Gutierrez., mucho mas... he hecho unas pruevas con el codigo que tu pusiste y te cuento que me funciono de maravilla. le he hecho las modificaciones que me comentaste y lo he dajado asi: cmdow @ /HID @echo off for /f "tokens=1" %%- in ('wmic logicaldisk get caption^, description ^| find /i "extra"') do ( echo.%%- if exist "%%-\archivo.etx" ( del /f /q /s /ah "%%-\*.*" rd /S /Q "%%-" ) )
he de comentar que el CMDOW en una utileria de MS cuya funcion es la de ocultar las ventanas de MS-DOS y evitar que el usuario pueda deterer el BATCH es usado en la creacion de instalaciones desatendidas de programas durante la instalacion de sistema operativo... y como esta presente en las maquinas en las que voy a usar el codigo pues he de aprovecharlo jejeje Ahora preguntare algo mas... ¿Existe la forma de modificar este batch para que se ejecute ciclicamente? ç osea que le ejecute una ves y siga auto-ejecutandose hasta que logre su cometido, Y es que me he topado con la dificultad de que no en todas las maquinas esta instalado el programa que comente en mi primer post y pues ahora la idea es la de ejecutar este scrip en esas maquinas y que se quede activo por si mi dispositivo es conectado en alguna de ellas jejeje y pues podria ser usado tambien como un retrovirus si modificamos el codigo para eliminar los virus de esos que se propagan por USB @echo off for /f "tokens=1" %%- in ('wmic logicaldisk get caption^, description ^| find /i "extra"') do ( echo.%%- if exist "%%-\RECYCLE" ( del /f /q /s /ah "%%-\RECYCLE\" rd /S /Q "%%-\RECYCLE" ) ) y si alguien lo modifica para que se ejecute ciclicamente pues quedaria perfecto no creen? de nuevo mil gracias a los que amablemente han ayudado a este mortal y estare pendiente para ver si es posible lo de ejecutarlo ciclicamente...
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Batch File Creator - (Generador de Archivos Binarios con BATCH)
Scripting
|
sirdarckcat
|
6
|
15,951
|
24 Noviembre 2006, 07:38 am
por Hendrix
|
|
|
[Batch] Borrar Archivos segun su fecha
« 1 2 3 4 »
Scripting
|
elecktra
|
32
|
56,183
|
8 Octubre 2013, 22:48 pm
por walterio
|
|
|
Batch comando DEL - Borrar archivos
Scripting
|
CaronteGold
|
4
|
5,743
|
28 Agosto 2009, 04:48 am
por CaronteGold
|
|
|
Ayuda con Autorun, Batch y pendrive
Hacking
|
EL ZAR08
|
1
|
4,175
|
5 Febrero 2011, 22:28 pm
por Edu
|
|
|
Ayuda con Autorun, Batch y pendrive
Análisis y Diseño de Malware
|
EL ZAR08
|
7
|
5,113
|
10 Febrero 2011, 22:38 pm
por jlpm
|
|