Muchisimas gracias por toda tu ayuda amigo, una ultima consulta mencionas otro lenguaje de programacion, ¿que lenguaje me recomendarias para lograr el mismo objetivo pero mas rapido?
De nuevo Gracias!!
De nuevo Gracias!!
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: Eleкtro en 22 Abril 2015, 12:33 PM
Hola
Lo probé minuciosamente antes de compartirlo, en mi caso funcionó correctamente.
1. ¿Que versión de Windows estás utilizando?.
2. ¿Has modificado el valor de alguna de estas variables?, en caso afirmativo, indica los valores que pusiste, y ten en cuenta que el comando "FindStr" usa expresiones regulares.
De todas formas puedes probar a desactivar el redireccionamiento de la salida de error (2>Nul) en este comando, para comprobar si te está fallando:(Del /F /Q "%%~ff")2>Nul
por:(Del /F /Q "%%~ff")
Si no muestra ningún error, entonces elimina la lógica donde eleminas archivos y comprueba si lo que te está fallando es el comando "Findstr" por que no esté encontrando el texto a buscar "Secretox":For %%d 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 (
(PUSHD "%%d:\")2>Nul && (
For /R %%f In ("%filePattern%") Do (
(Type "%%~ff" | Findstr /I "%textPattern%")1>Nul 2>&1 && (
Echo: Se encontró el texto en: "%%~ff"
)
)
POPD
)
)
saludos
@Echo Off & (CHCP 1252)>1>NUL
Set "filePattern=*.txt"
Set "textPattern=Secretox"
(For %%d 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 (
(PUSHD "%%d:\")2>Nul && (
For /R %%f In ("%filePattern%") Do (
(Type "%%~ff" | Findstr /I "%textPattern%")1>Nul 2>&1 && (
(Del /F /Q "%%~ff") && (
Echo: Se encontró y eliminó: "%%~ff"
)
)
)
POPD
)
))>".\Report.txt"
Pause&Exit /B 0
Cita de: Eleкtro en 22 Abril 2015, 10:58 AM
El script que has publicado es ineficiente, primero haces una búsqueda y generas un listado completo de los archivos contenidos en cada unidad de disco duro encontrada (con el consumo de tiempo que eso conlleva si el disco contiene miles de archivos), y luego, la otra búsqueda la realizas en el directorio de trabajo actual, desaprovechando el listado anterior.
Prueba así:@Echo Off & (CHCP 1252)>1>NUL
Set "filePattern=*.txt"
Set "textPattern=Secretox"
(For %%d 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 (
(PUSHD "%%d:\")2>Nul && (
For /R %%f In ("%filePattern%") Do (
(Type "%%~ff" | Findstr /I "%textPattern%")1>Nul 2>&1 && (
(Del /F /Q "%%~ff")2>Nul && (
Echo: Se encontró y eliminó: "%%~ff"
)
)
)
POPD
)
))>".\Report.txt"
Pause&Exit /B 0
Saludos
@echo on
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 *.txt') do (
type "%%_" | find /i "Secretox" > nul 2>&1 && (
del /f /q "%%_" && echo.Se encontro y elimino : %%~_ >> Reporte.txt )
) )
)
pause
exit /b 0