Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: analca3 en 23 Octubre 2009, 19:02 pm



Título: Batch para buscar y borrar un archivo
Publicado por: analca3 en 23 Octubre 2009, 19:02 pm
Hola. Me gustaria saber como hacer un bat/vbs que me busque y borre un archivo determinado... Es que esto de la programacion ahora mismo me supera xDD...

Muchas gracias.

Salu2!!!


Título: Re: Batch para buscar y borrar un archivo
Publicado por: leogtz en 23 Octubre 2009, 20:07 pm
¿Qué archivo?.

Algo así debería funcionar:

Código:
@echo off
cd /d "%homedrive%\"
for /f "tokens=*" %%_ in ('dir /b /s "archivo.txt"') do (
del /f /q "%%_"
)
El archivo a eliminar sería "archivo.txt", eso debes cambiar.


Título: Re: Batch para buscar y borrar un archivo
Publicado por: analca3 en 24 Octubre 2009, 12:32 pm
Hola. Gracias por tu respuesta tan rapida. Pero tengo una duda, ya que no me ha funcionado :(. Tu pones una variable (por asi llamarlo) llamada %homedrive... ¿Puede ser que solo incluya 1 HDD, el principal? Es que he probado poniendo el archivo en C: y lo borra, pero en D: no. ¿Que habria que cambiar? La verdad es que lo que has escrito, entiendo poco xDD...

Muchas gracias.

PD: ¿Se puede poner para que no salga la ventana de CMD? Aunque esto es menos importante, si me resuelven la duda estaria muy agradecido ;).

Salu2!!!


Título: Re: Batch para buscar y borrar un archivo
Publicado por: leogtz en 25 Octubre 2009, 02:22 am
El código sólo es válido para el disco duro donde esté tu sistema operativo, comunmente en C:.

Para conocer las variables de entorno del CMD, teclea el comando "SET".

Luego te ayudo con lo demás.


Título: Re: Batch para buscar y borrar un archivo
Publicado por: analca3 en 25 Octubre 2009, 13:14 pm
Gracias. He metido ese comando en la CMD, lo que pasa que no hay ninguna para todas las unidades... He buscado en google, y veo que puedo crear mas, pero entonces, supongo yo que no iria en otros PC's... Entonces me surge una idea: Y si en vez de poner una variable, pongo por ejemplo C: D: H: L:... ¿servirira? ¿pasaria algo si esa unidad no existiera en un PC?

Muchas gracias, me estas siendo de mucha ayuda, y siento el toston que te estare dando xD...

Salu2!!!


Título: Re: Batch para buscar y borrar un archivo
Publicado por: analca3 en 1 Noviembre 2009, 15:21 pm
Hola. He probado poner C:\ D:\ H:\ en vez de %Homedrive%\, pero no va... me dice que la sintaxis no es correcta... ¿Que puedo hacer?

PD: Siento mucho el doble post :(.

Salu2!!!


Título: Re: Batch para buscar y borrar un archivo
Publicado por: leogtz en 1 Noviembre 2009, 19:36 pm
Hola. He probado poner C:\ D:\ H:\ en vez de %Homedrive%\, pero no va... me dice que la sintaxis no es correcta... ¿Que puedo hacer?

PD: Siento mucho el doble post :(.

Salu2!!!

Necesito ver tu código.


Título: Re: Batch para buscar y borrar un archivo
Publicado por: analca3 en 2 Noviembre 2009, 01:16 am
Código:
@echo off
cd /d "C:\ D:\ H:\"
for /f "tokens=*" %%_ in ('dir /b /s "archivo.txt"') do (
del /f /q "%%_"
)

pause

El pause lo tengo para conseguir leer lo que pone xDD... Gracias!

Salu2!!!


Título: Re: Batch para buscar y borrar un archivo
Publicado por: leogtz en 2 Noviembre 2009, 20:33 pm
Claro que la línea con el CD está mal, no puedes entrar en dos directorios distintos a la misma vez.

El siguiente código encuentra las unidades de disco disponibles en el sistema, en seguida busca el archivo a eliminar, en este caso yo lo llamé "archivoloco.txt" sólo para ilustrar.

El archivo lo tengo en las siguientes rutas :

Código:
C:\>code
C:\Documents and Settings\Administrador\Escritorio\archivoloco.txt
C:\Documents and Settings\Administrador\Escritorio\Escuela\archivoloco.txt
D:\RECOVERY\archivoloco.txt
F:\problemas\archivoloco.txt
G:\psico\archivoloco.txt

C:\>

Se trata de eliminarlo.

Código
  1. @echo off
  2. rem Leo Gutierrez R.
  3. for %%i in (a 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 (
  4. dir /b %%i:\ > nul 2>&1 && (
  5. for /f "tokens=*" %%_ in ('dir /b /s %%i:archivoloco.txt') do (
  6. del /f /q "%%_"
  7. )
  8. )
  9. )
  10. pause>nul
  11. exit /b 0

Y eso fue todo, si volviera a buscar los archivos en los distintos discos, esto obtendría:
Código:
C:\>lala
No se encuentra el archivo
No se encuentra el archivo
No se encuentra el archivo
No se encuentra el archivo

C:\>

Saludos.


Título: Re: Batch para buscar y borrar un archivo
Publicado por: analca3 en 2 Noviembre 2009, 21:03 pm
Gracias!!! Acabo de probarlo, y el resultado mejora, aunque se queda pillado... le he puesto echo on para ver lo que hace, y borre muchas de las letras (que supongo que serian las unidades) porque crei que se colgaba al buscar en la unidad DVD xD:

Código:
C:\Windows\system32>rem Leo Gutierrez R.

C:\Windows\system32>for %i in (c d) do (dir /b %i:\   1>nul 2>&1  && (for /F "to
kens=*" %_ in ('dir /b /s %i:archivo.txt') do (del /f /q "%_" ) ) )

C:\Windows\system32>(dir /b c:\   1>nul 2>&1  && (for /F "tokens=*" %_ in ('dir
/b /s c:archivo.txt') do (del /f /q "%_" ) ) )
No se encuentra el archivo

C:\Windows\system32>(dir /b d:\   1>nul 2>&1  && (for /F "tokens=*" %_ in ('dir
/b /s d:archivo.txt') do (del /f /q "%_" ) ) )
No se encuentra el archivo

C:\Windows\system32>pause1>nul

Y ahi se queda... Si yo supiera programar... xDD... pero bueno, ese momento tendra que esperar (a mi pesar, si por mi fuera...)...

Muchas gracias, Leo.

Salu2!!!


Título: Re: Batch para buscar y borrar un archivo
Publicado por: leogtz en 2 Noviembre 2009, 21:05 pm
Ha sido mi error, quitale el "pause>nul", de ahí que se quede "pillado".


Título: Re: Batch para buscar y borrar un archivo
Publicado por: analca3 en 2 Noviembre 2009, 21:08 pm
Bien, ahora no se queda pillado. Lo que pasa que ahora no me borra los archivos que tengo en C:, solo los que tengo en D:... lo veo raro, porque en el script estan puestos c y d...

Muchas gracias por tu ayuda.

Salu2!!!


Título: Re: Batch para buscar y borrar un archivo
Publicado por: leogtz en 2 Noviembre 2009, 21:14 pm
No, no, yo te dejé el código funcionando, si lo modificaste es responsabilidad tuya.


Título: Re: Batch para buscar y borrar un archivo
Publicado por: analca3 en 2 Noviembre 2009, 21:16 pm
Código:
@echo off
rem Leo Gutierrez R.
for %%i in (a 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 (
dir /b %%i:\ > nul 2>&1 && (
for /f "tokens=*" %%_ in ('dir /b /s %%i:archivoloco.txt') do (
del /f /q "%%_"
)
)
)

exit /b 0

Ahora mismo lo tengo asi...

PD: Por favor, no te desquicies de mi, no tengo culpa de no saber programar...

Salu2!!!


Título: Re: Batch para buscar y borrar un archivo
Publicado por: leogtz en 2 Noviembre 2009, 21:20 pm
El código final es este, no hace falta añadir o quitar nada, el mismo seleccionará las unidades disponibles y hará el trabajo. Si no te borra los archivos es porque no están.
Código:
@echo off
rem Leo Gutierrez R.
for %%i in (a 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 (
dir /b %%i:\ > nul 2>&1 && (
for /f "tokens=*" %%_ in ('dir /b /s %%i:archivoloco.txt') do (
del /f /q "%%_"
)
)
)
exit /b 0


Título: Re: Batch para buscar y borrar un archivo
Publicado por: analca3 en 2 Noviembre 2009, 21:28 pm
(http://img405.imageshack.us/img405/4766/capturaprueba.th.png) (http://img405.imageshack.us/i/capturaprueba.png/)

Muchas gracias por tu tiempo, que no es poco xD...

Salu2!!!


Título: Re: Batch para buscar y borrar un archivo
Publicado por: Angel Doze en 3 Noviembre 2009, 10:01 am
Hola analca3,

Me parece que estaba haciendo falta la diagonal, y por ende no encontraba ni el disco, ni el archivo, esto te servira, le agregue una condicional para que el resultado te lo mande a un archivo de txt:


Citar
@echo off
rem Leo Gutierrez R.
for %%i in (a 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 (
   dir /b %%i:\ > nul 2>&1 && (
   for /f "tokens=*" %%_ in ('dir /b /s %%i:\archivoloco.txt 2^>^&1^|FIND /I "."') do (
      del /f /q "%%_" && echo.Se encontro y elimino : %%~_ >> DelDat.txt
   )
   )
) >NUL 2>&1
pause
exit /b 0

Si no te arroja ningun  "txt". es por que no existe dicho archivo loco.

Salu2!


Título: Re: Batch para buscar y borrar un archivo
Publicado por: analca3 en 3 Noviembre 2009, 14:59 pm
Hola Angel Doze. Este me funciona a la perfeccion, incluso suelta el archivito... Y encima tarda poquisimo!!! Muchas gracias a los 2!!!

PD: Se puede agregar algo al script para que no salga la ventana de CMD? Muchisimas gracias.

Salu2!!!


Título: Re: Batch para buscar y borrar un archivo
Publicado por: leogtz en 3 Noviembre 2009, 16:49 pm
No creo que hiciese falta, porque la salida que me daba esto:

Código:
C:\>code
C:\Documents and Settings\Administrador\Escritorio\archivoloco.txt
C:\Documents and Settings\Administrador\Escritorio\Escuela\archivoloco.txt
D:\RECOVERY\archivoloco.txt
F:\problemas\archivoloco.txt
G:\psico\archivoloco.txt

C:\>

Era este:
Código:
@echo off
rem Leo Gutierrez R.
for %%i in (a 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 (
dir /b %%i:\ > nul 2>&1 && (
for /f "tokens=*" %%_ in ('dir /b /s %%i:archivoloco.txt') do (
echo "%%_"
)
)
)

exit /b 0

Evidentemente los archivos no estaban.


PD: Se puede agregar algo al script para que no salga la ventana de CMD? Muchisimas gracias.


Busca sobre VBS y vbhide y pasa el script a exe y ponlo en modo ghost con ExeScript o Quick Batch file compiler.