Use archivos para procesar archivos basados ​​en la edad

Siempre es bueno saber algo de magia de línea de comandos, ya que a veces es más fácil procesar comandos de esa manera.

Esta guía muestra el comando Forfiles en Windows Vista y Windows 7 (Actualización: también disponible en versiones más recientes de Windows).

Los archivos pueden procesar archivos basados ​​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 de antigüedad, 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 coincidan con los filtros. Echemos un vistazo más de cerca al comando forfiles.

FORFILES [/ P pathname] [/ M searchmask] [/ S] [/ C command] [/ 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 ruta de acceso Indica la ruta para comenzar a buscar. La carpeta predeterminada es el directorio de trabajo actual (.).
  • / M searchmask Busca archivos de acuerdo con 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 comando deben estar entre comillas dobles. El comando predeterminado es "cmd / c echo @file".

Las siguientes variables se pueden utilizar en la cadena de comando:

  • @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 "VERDADERO" si un tipo de archivo es un directorio y "FALSO" para los 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 modificada del archivo.

Para incluir caracteres especiales en la línea de comando, use el código hexadecimal para el carácter en formato 0xHH (ej. 0x09 para tabulación). Los comandos internos de CMD.exe deben ir precedidos de "cmd / c".

/ D date Selecciona archivos con una última fecha de modificación mayor o igual que (+), o menor o igual que (-), la fecha especificada utilizando el formato "dd / MM / aaaa"; o selecciona archivos con una última fecha de modificación mayor o igual a (+) la fecha actual más los días "dd", o menor o igual a (-) la fecha actual menos los días "dd". Un número de días "dd" válido 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 Intro 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 en todos sus subdirectorios los 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 en función de la cadena ingresada, y / D define la fecha o un intervalo de tiempo.

El comando / C se usa para procesar los archivos que se encuentran más adelante. Por ejemplo, se puede usar para ejecutar el siguiente comando: /C "cmd /c echo @fname" > test.txt echo los nombres de cada archivo encontrado y guardar los resultados en text.txt en el mismo directorio.

El comando completo se ve así para forfiles /P c:\test\ /M .doc /S /D -10 /C "cmd /c echo @fname" > test.txt

Otra posibilidad es eliminar los archivos que coinciden con la búsqueda, esto se hace con el comando /C "cmd /c del @File

Sin embargo, se recomienda probar primero la salida, antes de emitir 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 ejecutar archivos regularmente.