Utilice Forfiles para procesar archivos según la antigüedad
- Categoría: Ventanas
Siempre es bueno conocer algo de magia en la línea de comandos, ya que a veces es más fácil procesar los comandos de esa manera.
Esta guía demuestra la Forfiles comando en Windows Vista y Windows 7 (Actualización: también disponible en las versiones más recientes de Windows).
Forfiles puede procesar archivos basándose en nombres, extensiones de archivo y antigüedad. Por ejemplo, es posible encontrar todos los documentos en un directorio que tienen más de 20 días, o todos los documentos en c: documentos que se han modificado desde una fecha específica.
El comando forfiles se puede combinar con opciones de procesamiento para eliminar esos archivos o para crear una lista de todos los archivos que coinciden con los filtros. Echemos un vistazo más de cerca al comando forfiles.
FORFILES [/ P ruta de acceso] [/ M máscara de búsqueda] [/ S] [/ C comando] [/ D [+ | -] dd / MM / aaaa]
Descripción: Selecciona un archivo (o conjunto de archivos) y ejecuta un comando en ese archivo. Esto es útil para trabajos por lotes.
Lista de parámetros:
- / P nombre de ruta Indica la ruta para iniciar la búsqueda. La carpeta predeterminada es el directorio de trabajo actual (.).
- / M máscara de búsqueda Busca archivos según una máscara de búsqueda. La máscara de búsqueda predeterminada es '*'.
- / S Indica a los archivos que se repitan en subdirectorios. Como 'DIR / S'.
- Comando / C Indica el comando a ejecutar para cada archivo. Las cadenas de comandos deben ir entre comillas dobles. El comando predeterminado es 'cmd / c echo @file'.
Las siguientes variables se pueden utilizar en la cadena de comandos:
- @file: devuelve el nombre del archivo.
- @fname: devuelve el nombre del archivo sin extensión.
- @ext: devuelve solo la extensión del archivo.
- @path: devuelve la ruta completa del archivo.
- @relpath: devuelve la ruta relativa del archivo.
- @isdir: devuelve 'TRUE' si un tipo de archivo es un directorio y 'FALSE' para archivos.
- @fsize: devuelve el tamaño del archivo en bytes.
- @fdate: devuelve la última fecha de modificación del archivo.
- @ftime: devuelve la última hora de modificación del archivo.
Para incluir caracteres especiales en la línea de comando, use el código hexadecimal para el carácter en formato 0xHH (por ejemplo, 0x09 para tabulación). Los comandos internos de CMD.exe deben ir precedidos de 'cmd / c'.
/ D fecha Selecciona archivos con una fecha de última modificación mayor o igual a (+), o menor o igual a (-), la fecha especificada usando el formato 'dd / MM / aaaa'; o selecciona archivos con una fecha de última modificación mayor o igual a (+) la fecha actual más 'dd' días, o menor o igual a (-) la fecha actual menos 'dd' días. Un número válido de días 'dd' puede ser cualquier número en el rango de 0 a 32768. '+' se toma como signo predeterminado si no se especifica.
/? Muestra este mensaje de ayuda. Este archivo de ayuda se puede abrir ingresando el comando forfiles /? en un símbolo del sistema. Presione Windows-R, escriba cmd y presione enter para iniciar la línea de comando en Windows.
El comando forfiles / P c: test / M .doc / S / D -10
busca en el directorio c: test y todos sus subdirectorios archivos con la extensión .doc que tengan más de 10 días.
El parámetro / p seguido de un directorio define el directorio de inicio, / s incluye subdirectorios en la búsqueda, / m filtra los archivos y carpetas según la cadena ingresada y / D define la fecha o un intervalo de tiempo.
El comando / C se utiliza para procesar los archivos que se encuentran más. Por ejemplo, se puede utilizar para ejecutar el siguiente comando: / C 'cmd / c echo @fname'> test.txt
Repita los nombres de cada archivo encontrado y guarde los resultados en text.txt en el mismo directorio.
El comando completo se ve así forfiles / P c: test / M .doc / S / D -10 / C 'cmd / c echo @fname'> test.txt
Otra posibilidad es borrar los archivos que coincidan con la búsqueda, esto se hace con el comando / C 'cmd / c del @File
Sin embargo, se recomienda probar la salida primero, antes de ejecutar el comando de eliminación para asegurarse de que solo se eliminen los archivos correctos. Los usuarios experimentados pueden crear un archivo por lotes para ejecutarlo con regularidad.