Título: Elimina archivos < 15 dias problema con rutas por espacios Publicado por: lemuhr en 22 Agosto 2014, 23:55 pm Hola, les agradezco su ayuda con un script que encontré en la red con el cual puedo eliminar archivos inferiores a 15 días de creado, en mi caso, pero al hacer la revisión en la estructura de carpetas no encuentra la ruta si hay espacios, he creado el archivo que crea el mismo script con comillas, pero no lee las lineas con comillas, y tampoco con espacios.
este es el script: Código
Ah, tampoco se a que se refieren con Registros ... Saludos, Título: Re: Elimina archivos < 15 dias problema con rutas por espacios Publicado por: Eleкtro en 23 Agosto 2014, 09:41 am Antes de nada debo decir que ese script no es de buena calidad, la persona que lo escribió no tuvo los suficientes conocimientos ya que se basa en la utilización de un lenguaje inferior (Batch) y hace otras cosas innecesarias como la pausa de 2 segundos.
Citar no encuentra la ruta si hay espacios Las rutas con espacios deben encerrarse con comillas dobles: "C:\Ruta con espacios", bueno, en realidad TODO argumento debería encerrarse con las comillas dobles lleve espacios o no para no caer en malas practicas de uso, pero el caracter de la comila doble (") es un caracter reservado por el lenguaje VBS y se debe escapar, la manera de escaparla es duplicando el caracter (""). Citar Ah, tampoco se a que se refieren con Registros ... Ni idea, es una variable que no está definida en el código, así que se tomará como un valor vacio:Esto: Código: if objfso.getfile(fi).parentfolder.name <> Registros then... Es lo mismo que: Código: If "Esto" es distinto a NADA then... De todas formas al parecer la intención que tuvo con esa variable "desaparecida" es determinar si el archivo es realmente un archivo y no una carpeta, es algo innecesario porque puedes especificar la exclusión de carpetas en el comando de Batch. Nota: Para evitar ese tipo de problemas con variables utiliza la declaración Option Explicit El código corregido: Código
PD: Te recomiendo hacer una copia de seguridad del directorio antes de eliminar archivos, para comprobar que esté todo bien, pude tener algún fallo. PD2: Como ya te expliqué el código no es de buena calidad, se puede obtener los archivos de forma recursiva utilizando VBS, lo cual es más eficiente, pero también requiere bastante más código, no se lo añadí por si eso te iba a confundir, pero en esta url (http://blogs.technet.com/b/heyscriptingguy/archive/2004/10/20/how-can-i-get-a-list-of-all-the-files-in-a-folder-and-its-subfolders.aspx) tienes un ejemplo. Saludos! Título: Re: Elimina archivos < 15 dias problema con rutas por espacios Publicado por: nanoakb en 7 Mayo 2016, 04:14 am podrias hacer uno asi pero que en lugar de eliminar archivos de 15 dias elimine archivos que no estan en la lista? para asi eliminar nuevos que se vayan generando
Título: Re: Elimina archivos < 15 dias problema con rutas por espacios Publicado por: Eleкtro en 10 Mayo 2016, 16:27 pm Hola.
Como poder, podría hacerlo, pero es bastante desagradable invertir tiempo en el desarrollo de un código para no recibir ni un miserable "gracias", esto obviamente no lo digo por ti, sino por el usuario al que iba dirigido el código de arriba. Aparte, no es solo por eso, sino que además no veo que hayas mostrado ningún código donde lo hayas intentado hacer por ti mismo, ten en cuenta que aquí no estamos para regalar las tareas ya hechas a nadie, sino para ayudar en los obstáculos para que al final puedas lograr el objetivo por ti mismo. De todas formas, creeme lo siguiente que te voy a decir, es una completa pérdida de tiempo llevarlo a cabo en una herramienta tan limitada como Batch, hacerlo supone muchas trabas (y pereza) por tiempo invertido y tediosas limitaciones, y conseguirlo supone muchas fisuras que no se pueden controlar correctamente en caso de posible error de cualquier tipo debido a las limitaciones del lenguaje una vez mas. En cualquier otro lenguaje podrías elaborar un sofisticado algoritmo de búsqueda de archivos, filtrado por fechas y exclusión en 5-10 minutos (bueno, más tiempo si no tienes conocimientos previos de dicho lenguaje), no pierdas el tiempo con Batch ni pidiendo que te regalen el código... Saludos. Título: Re: Elimina archivos < 15 dias problema con rutas por espacios Publicado por: nanoakb en 12 Mayo 2016, 15:08 pm tenes razon lo siento, y el motivo por que pareciera que no lo intente es justamente porque soy un ignorante por eso preguntaba.
si tuvieras que recomendarme un lenguaje cual seria? aver si me pongo en ello Título: Re: Elimina archivos < 15 dias problema con rutas por espacios Publicado por: Eleкtro en 12 Mayo 2016, 17:59 pm si tuvieras que recomendarme un lenguaje cual seria? aver si me pongo en ello Para este tipo de tareas, algo sencillo a la vez que efectivo sería Visual Basic.NET (no confundir con VB6 ni VBS) o C#, en ambos lo harías de la misma manera pero utilizando una sintaxis distinta. Con la función System.IO.Directory.GetFiles() puedes obtener los archivos, y de manera recursiva (o no). Con las propiedades del type System.IO.FileInfo puedes obtener la fecha de creación, modificación o último acceso de un archivo. Para la exclusión, una manera sencilla sería con una query de LINQ-to-objects (From fi As FileInfo In files Where Not (fi.CreationTime < DateTime.Today.AddDays(-15)), así de simple en una sola linea). PD: Hasta para alguien que jamás haya tocado esos lenguajes creo que es muy sencillo si buscas ejemplos de los nombres que he mencionado en Google y lo intentas hacer, en serio. Saludos! Título: Re: Elimina archivos < 15 dias problema con rutas por espacios Publicado por: nanoakb en 13 Mayo 2016, 19:04 pm bueno gracias
vere que puedo hacer con c# aver que me sale,seguramente volvere jamas los eh tocado pero tampoco me rindo facilmente |