Quiero realizar un proceso programado en Windows (específicamente, Windows 7) que cada 3 horas elimine todos los archivos en todas las carpetas con más de 24 horas (como el hallazgo de Unix -mtime +1
). Básicamente, el equivalente de Windows de tener esto configurado en mi cron de Unix:
find $TRANSITDIR -mtime +1 -exec rm -rf {} \;
Aunque parece que he descubierto que el equivalente cron de Windows es elplanificador, Simplemente no conozco los comandos de Windows para hacer eso.
¿Alguien tiene un script de programación listo para usar?
Respuesta1
Cree un archivo por lotes con el siguiente contenido:
REM Remove files older than 1 day
forfiles /p %1 /s /m * /c "cmd /c del @path /q" /d -1
Luego abra el Programador de tareas de Windows. Cree una tarea básica para ejecutar un programa y, como argumento, proporcione la ruta a la carpeta entre comillas.
Explicación de comandos.
REM
es un comentario.
forfiles
ejecutará un comando para cada archivo. /p %1
define en qué ruta se encuentran los archivos ( %1
significa el valor del primer argumento de la línea de comando pasado al script). /s
es recursivo (va a subcarpetas). /m *.*
es la máscara del nombre del archivo. /c "cmd /c del @path"
especifica qué comando ejecutar. /d -1
significa archivos de más de 1 día.
En este caso, cmd /c del @pat /qh
crea una nueva sesión y ejecuta del
(elimina el archivo) en @path
la ruta del archivo para cada archivo iterado por forfiles
. /q
es para modo silencioso, para queno te pide que confirmes los directorios.
Pruebas
Reemplazar del
con echo
. Esto imprimirá cada archivo que se habría eliminado, en lugar de eliminarlo realmente.
Respuesta2
No es exactamente lo que quieres hacer, pero diría que vale la pena tener en cuenta las eliminaciones automáticas de ccleaner cuando se habla de Windows. Lo uso para buscar y limpiar archivos tmp para máquinas con Windows.
Tiene una CLI limitadahttp://www.piriform.com/docs/ccleaner/advanced-usage/command-line-parameters#Command-line_parameters_for_CCleaner_
También siempre que seas un tipo shell y hayas dicho que lo necesitas para W7, puedes probar powershell:
http://www.google.es/search?q=powershell+eliminar+x+día+archivos+más antiguos