Batch para buscar y borrar un archivo

Iniciado por analca3, 23 Octubre 2009, 19:02 PM

0 Miembros y 1 Visitante están viendo este tema.

leogtz

Ha sido mi error, quitale el "pause>nul", de ahí que se quede "pillado".
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

analca3

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!!!

leogtz

No, no, yo te dejé el código funcionando, si lo modificaste es responsabilidad tuya.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

analca3

@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!!!

leogtz

#14
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.
@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
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

analca3



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

Salu2!!!

Angel Doze

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!

analca3

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!!!

leogtz

No creo que hiciese falta, porque la salida que me daba esto:

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:
@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.

Cita de: analca3 en  3 Noviembre 2009, 14:59 PM

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.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com