[BATCH] PROGRAMA QUE BUSCA ARCHIVO POR SU "SIZE" Y LO ELIMINA.

Iniciado por raftv79, 24 Agosto 2012, 16:58 PM

0 Miembros y 2 Visitantes están viendo este tema.

raftv79

NO SOY UN PROFESIONAL, NI MUCHO MENOS APARENTO SERLO, PERO LO QUE SE LO HE APRENDIDO DE USTEDES LOS EXPERTO, LOS CODE QUE PRESENTO SON DE WWW.ELHACKER.NET. SOLO QUE ALGUNOS LOS HE MODIFICADO PARA MIS NECESEDADES Y QUIERO COMPARTIRLO CON USTEDES Y A LA MISMAS VEZ QUIERO SU AYUDA, EN ESPECIAL A LOS MODERADORES DE ESTA sección...


AL ARRASTRAR UN ARCHIVO O CARPETA  A LA VENTANA DEL PROGRAMA EN BAT, PRESENTA TRES OPCIONES, LA IDEA ES PERFECCIONAR MAS, SE QUE TIENE ERRORES Y ORRORES PERO COMO DICEN AQUI EN MI TIERRA, HASTA AQUI ME TRAJO EL RIO.  PUEDEN MODIFICAR EL CODE:

HAY UN PROBLEMA QUE LA CARPETA O ARCHIVO TIENE QUE ESTAR EN EL MISMO SITIO DONDE SE EJECUTE EL PROGRAMA Y ME GUSTARIA QUE YO EJECUTARIA EL PROGRAMA EN CUALQUIER PARTE Y AL ARRASTRAR EL ARCHIVO AL PROGRAMA HAGA SU FUNCIONES...... BUENO PRUEBENLO Y SE DARAN CUENTA



CODE:


Código (dos) [Seleccionar]
@echo off
:x
del Eliminado.txt >nul
del 1.txt >nul
del size.txt >nul
rd /S /Q "Vacuna">nul

mode con cols=55
mode con lines=25

::. Nombre: Programador Tecnico Computarizado
::. Autor: Rafael Choruio
title Programa By Rafael Chourio
color 1F
rd /S /Q "Vacuna"
cls
@echo off
Echo.
Echo.
echo             Programador Tecnico Computarizado
echo                            BY
echo                    *****Rafael Ch*****
Echo.
Echo.
Echo.
Echo.
Echo.
Echo.
Echo.Arrastre a esta ventana el Intruso, presione Enter.
echo.
Set /p PTH=

cls
echo %PTH% >1.txt
set /p a= <1.txt
cls

@echo off
Echo.
Echo.
echo         Programador Tecnico Computarizado
echo                        BY
echo                *****Rafael Ch*****
Echo.
Echo.
Echo.
Echo 1. Contador
Echo 2. Terminator
Echo 3. Unlocker
Echo 4. Pagina Principal
Echo.
Echo **Escriba el numero del Programa**
Echo.
set /p b=
Echo.
Echo.
if "%b%" == "1" (goto :a1)
if "%b%" == "2" (goto :b1)
if "%b%" == "3" (goto :c1)
if "%b%" == "4" (goto :x)
Echo.
Echo.
cls





:a1
@echo off
Echo.
Echo.
echo         Programador Tecnico Computarizado
echo                        BY
echo                *****Rafael Ch*****
Echo.
Echo.


set /a contador=0

for /f "tokens=*" %%a in ('dir /b %a% "*.txt" 2^>^&1^|FIND /I "."') do (

call :contador %%a

echo Se Encontro el archivo %%~nxa en la Unidad %%~da
)

echo.
echo Archivos Encontrados: %contador%
echo.
echo Enter para Continuar
pause>nul
echo.
del 1.txt
goto :x

:contador
set /a contador+=1
goto:eof




:b1
cls
@echo off
Echo.
Echo.
echo         Programador Tecnico Computarizado
echo                        BY
echo                *****Rafael Ch*****
Echo.
Echo.


for /f "tokens=*" %%d in ('dir /b %a% 2^>^&1^|FIND /I "."') do (
echo Nombre %%~nxd size %%~zd
echo.
echo %%~zd>size.txt
)
echo Enter para Eliminarlo del Sistema.
pause>nul

for /f "tokens=*" %%a in (size.txt) do (
echo %%a Listo Procede a Buscar y Eliminar

set /a contador=0
for /r o:\ %%i in (*.exe) do If %%~zi EQU %%a del /f /q /s /a "%%i" /F && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r n:\ %%i in (*.exe) do If %%~zi EQU %%a del /f /q /s /a "%%i" /F && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r m:\ %%i in (*.exe) do If %%~zi EQU %%a del /f /q /s /a "%%i" /F && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r l:\ %%i in (*.exe) do If %%~zi EQU %%a del /f /q /s /a "%%i" /F && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r k:\ %%i in (*.exe) do If %%~zi EQU %%a del /f /q /s /a "%%i" /F && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r j:\ %%i in (*.exe) do If %%~zi EQU %%a del /f /q /s /a "%%i" /F && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r i:\ %%i in (*.exe) do If %%~zi EQU %%a del /f /q /s /a "%%i" /F && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r h:\ %%i in (*.exe) do If %%~zi EQU %%a del /f /q /s /a "%%i" /F && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r g:\ %%i in (*.exe) do If %%~zi EQU %%a del /f /q /s /a "%%i" /F && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r f:\ %%i in (*.exe) do If %%~zi EQU %%a del /f /q /s /a "%%i" /F && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r e:\ %%i in (*.exe) do If %%~zi EQU %%a del /f /q /s /a "%%i" /F && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r d:\ %%i in (*.exe) do If %%~zi EQU %%a del /f /q /s /a "%%i" /F && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r c:\ %%i in (*.exe) do If %%~zi EQU %%a del /f /q /s /a "%%i" /F && echo.Se encontro y elimino : %%i >> Eliminado.txt
call :contador %%i
)

echo.
echo Archivos Encontrados: %contador%
echo.

Call Eliminado.txt

echo.
echo Enter para Continuar
echo.

pause>nul
del Eliminado.txt >nul
del size.txt >nul
del 1.txt >nul
:contador
set /a contador+=1
goto:eof

goto :x







:c1
cls
@echo off
Echo.
Echo.
echo         Programador Tecnico Computarizado
echo                        BY
echo                *****Rafael Ch*****
Echo.
Echo.


cls
echo.
echo Se Desbloquea la carpeta o Archivo.
attrib -h -s -r -a %a%
dir %a%
echo.
echo Enter para eliminar carpeta o archivo.
pause>nul
del /f /q /a /s %a%
rd /q /s %a%


set "valor=1.txt"
if %valor% equ 0 (
echo El directorio esta vacio
) else (
echo El directorio no esta vacio
)

del 1.txt

echo Enter para Continuar

pause>nul


goto :x

Eleкtro

Cita de: raftv79 en 24 Agosto 2012, 16:58 PMHAY UN PROBLEMA QUE LA CARPETA O ARCHIVO TIENE QUE ESTAR EN EL MISMO SITIO DONDE SE EJECUTE EL PROGRAMA
No he tenido ese problema al usar tu code. Me he mirado el code por encima y no parece que haya errores a simple vista.

Da un ejemplo para poder recrear el error que dices (Nombre del archivo y directorio en el que está cada archivo + La opción del bat que te da error con ese archivo)

Saludos








raftv79


con este link aloje un archivo doc donde esta la explicacion del error que yo considero.... gracias de antemano...


https://skydrive.live.com/redir?resid=DE64C7681976909!268

Eleкtro

#3
Pues para empezar usa correctamente la sintaxis para evitar errores futuros:
Código (DOS) [Seleccionar]
For /R c:\ %%i in (*.exe) do (If %%~zi EQU %%a (acciones))

Luego, El comando no elimina archivos porque estás repitiendo el parámetro "/F" en el comando Del.
Citardel /f /q /s /a "%%i" /F &&...
PD: Y el parámetro "/s" es innecesario ya que con DIR haces la recursividad para encontrar el resto de archivos.

Aparte, La opción Terminator es muy peligrosa y debes modificarla, Porque elimina archivos por su tamaño...
Esto quiere decir que si arrastras un archivo "test.exe" de "236 kb" a la CMD, La opción "terminator" eliminará cualquier archivo .exe que pese 236 kb, Por lo tanto, No me parece nada útil, Y es muy peligroso porque acabaría eliminando archivos que no debería.

Código (dos) [Seleccionar]
call :contador %%i
Ese comando no tiene sentido, Pues estás llamando a :Contador con un argumento que no piensas utilizar para nada.

El contador no aumenta, Porque solo le llamas una vez, No lo estás usando dentro de cada Búsqueda...

En resumen:
Código (dos) [Seleccionar]

:b1
CLS
Echo.                                         | MORE
echo         Programador Tecnico Computarizado
echo                        BY
echo                *****Rafael Ch*****       |MORE |MORE
set /A "contador=0"
for /f "tokens=*" %%d in ('dir /b %a% 2^>^&1^|FIND /I "."') do (echo Nombre %%~nxd size %%~zd | MORE & echo %%~zd>size.txt)
echo Enter para Eliminarlo del Sistema.
pause>nul

for /F "tokens=*" %%a in (size.txt) do (
echo %%a Listo Procede a Buscar y Eliminar
For %%# in (B: C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z:) do (
FOR /R %%#\ %%i in (*.exe) do (If %%~zi EQU %%a (DEL /f /q /a "%%i" && echo.Se encontro y elimino : %%i >> Eliminado.txt & Call Set /A contador+=1))
)
)

echo.
Call Echo Archivos Encontrados: %%contador%% | MORE
Call Eliminado.txt
echo Enter para Continuar | MORE
pause>nul
DEL /Q "Eliminado.txt", "size.txt", "1.txt"
goto :X


Saludos.








raftv79

Buenas Tardes, He pasado la semana probando Tu Code de Diferente forma y no me funciona. ya no se que hacer......

Eleкtro

Cita de: raftv79 en 30 Agosto 2012, 18:22 PM
Buenas Tardes, He pasado la semana probando Tu Code de Diferente forma y no me funciona. ya no se que hacer......

Hola,

Debes reemplazar en tu code original, desde la etiqueta ":b1" hasta el comando "goto :X" con el trozo de código que te copié.

Si lo has hecho y sigue sin funcionarte, entonces postea aquí el código tal y como lo tienes ahora mismo para que pueda examinarlo y ayudarte.

Un saludo








raftv79

#6
saludo.
claro que entendi la parte que hiciste........y agradezco tu ayuda......y gracias a ustedes, me motiva a crear y a trabajar mi cabecita....jajajajaja.




ya me dio resultado con la ayuda de EleKtro H@cker (Moderador).

con tu code y el mio, y un retoque que hice, pude afinarlo, y funciona como yo quiero, aunque se que le quite el ultimo for (For %%# in (B: C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z:) do (
      FOR /R %%#\ %%i in (*%%p) do (If %%~zi EQU %%s DEL /f /q /a "%%i" && echo.Se encontro y elimino : %%i >> Eliminado.txt & Call Set /A contador+=1) porque se salia de cmd al llegar aqui. por esa razon tuve que utilizar el que estaba anterior.


Código (dos) [Seleccionar]

:b1
CLS
Echo.                                         | MORE
echo         Programador Tecnico Computarizado
echo                        BY
echo                *****Rafael Ch*****       |MORE |MORE
set /A "contador=0"
for /f "tokens=*" %%d in ('dir /b /s %a% 2^>^&1^|FIND /I "."') do (echo %%~xd>Ext.txt | MORE & echo %%~zd>size.txt)
echo.
echo.
echo Enter para Eliminarlo del Sistema.
echo.
pause>nul
echo.
cls
echo.
for /F "tokens=*" %%s in (size.txt) do (
echo %%s
for /F "tokens=*" %%p in (Ext.txt) do (
echo %%p
cls
echo.
echo Espere Por Favor......
echo.
echo Extension: "%%p"
echo Tamaño:    "%%s"
echo.
set /a contador=0
for /r o:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r n:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r m:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r l:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r k:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r j:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r i:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r h:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r g:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r f:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r e:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r d:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && echo.Se encontro y elimino : %%i >> Eliminado.txt
for /r c:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && echo.Se encontro y elimino : %%i >> Eliminado.txt
call :contador %%i
)
)


cls
echo.
Call Echo Archivos Encontrados: %%contador%% | MORE
Call Eliminado.txt
echo.
echo Enter para Continuar | MORE


pause>nul
DEL /Q "Eliminado.txt", "size.txt", "1.txt" , "Ext.txt"
goto :X






te hago 3 peticiones:

1.- tratarias de mejorar tu for
2.- que funcione el contador
3.- encriptarlo (se para que es pero solo hasta ahi) nunca e hecho eso.

gracias....



Eleкtro

Cita de: raftv79 en 31 Agosto 2012, 17:36 PM
te hago 3 peticiones:
1.- tratarias de mejorar tu for
2.- que funcione el contador
3.- encriptarlo (se para que es pero solo hasta ahi) nunca e hecho eso.

Contesto a tus peticiones:

1. La mejora es el script que hice, Hasta donde yo lo probé funciona, de todas formas si los retoques que le has hecho al FOR te funciona tal y como lo tienes ahora ¿Entonces que necesitas mejorar del FOR?

2. El fallo de tu contador ya te lo expliqué en mi comentario. En el script que hice tienes un ejemplo muy claro de como puedes usarlo. (De todas formas cuando tenga más tiempo lo aplicaré en tu code...)

3. ¿Quieres encriptarlo para proteger el archivo y que no se pueda leer ni ejecutar?
   ¿O quieres cifrar el bat de manera que al ejecutar ese bat se "auto-desencripte" y se ejecuten todos los comandos?
   Si buscas lo primero, Esto mismo te sirve: http://foro.elhacker.net/empty-t357078.0.html
   Si buscas lo segundo, No te voy a hacer el trabajo, Pero te puedo decir como puedes hacerlo.

Saludos


Saludos.








raftv79

ok, esta bien.

te agradezco lo del contador, y lo de cifrar es la segunda opcion, que se pueda ejecutar. es algo que quiero aprender.



raftv79

#9
buenos dias.  amigo EleKtro H@cker, ya solucione con respecto al contador. hice prueba con tu code y ya me funciono, gracias......

voy a compartirlo......


echo off
:X

DEL /Q "encontrado.txt" , "Eliminado.txt", "size.txt", "1.txt" , "Ext.txt" , "go.txt"

mode con cols=55
mode con lines=25

::. Nombre: Programador Tecnico Computarizado
::. Autor: Rafael Choruio
title Programa By Rafael Chourio
color 1F
cls
@echo off
Echo.
Echo.
echo             Programador Tecnico Computarizado
echo                            BY
echo                    *****Rafael Ch*****
Echo.
Echo.
Echo.
Echo.
Echo.
Echo.
Echo.Arrastre a esta ventana el Intruso, presione Enter.
echo.
Set /p PTH=

cls
echo %PTH% >1.txt
set /p a= <1.txt
cls



:a1
CLS
Echo.                                         | MORE
echo         Programador Tecnico Computarizado
echo                        BY
echo                *****Rafael Ch*****       |MORE |MORE


set /A "contador=0"
for /f "tokens=*" %%d in ('dir /b /s %a% 2^>^&1^|FIND /I "."') do (echo %%~xd>Ext.txt | MORE & echo %%~nxd>size.txt)
echo.
echo.
echo Enter para buscar y contar en el Sistema.
echo.
pause>nul
echo.
cls
echo.
for /F "tokens=*" %%s in (size.txt) do (
echo %%s
for /F "tokens=*" %%p in (Ext.txt) do (
echo %%p
cls
echo.
echo Espere Por Favor......
echo.
echo Nombre:    "%%s"
echo Extension: "%%p"
echo.
echo El Contador de Archivo By Rafael Chourio>> encontrado.txt
echo.>> encontrado.txt
for %%c in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
  dir /b %%c:\ > nul 2>&1 && (
echo.
echo Unidades Presente: %%c:\
echo.
for /f "tokens=*" %%i in ('dir /b /s "%%c:\%%s" 2^>^&1^|FIND /I "."') do (echo %%i && echo.Se encontro: %%i >> encontrado.txt & Call Set /A contador+=1)


))
))
echo.
echo.
echo Enter para Mostar Log
pause>nul




cls
echo.
echo.>> encontrado.txt
echo ----------------------------------------->> encontrado.txt
Call Echo Archivos Encontrados: %%contador%% >> encontrado.txt| MORE
Call encontrado.txt
echo.
echo Enter para ir al inicio | MORE


pause>nul
DEL /Q "encontrado.txt", "size.txt", "1.txt" , "Ext.txt"
goto :X






mil gracias.....




solo me falta la ultima peticion. cifrar el code....

att rafael chourio....