Siempre es bueno conocer la magia de la línea de comandos, ya que a veces es más fácil procesar los comandos de esa manera.
Esta guía demuestra el comando Forfiles en Windows Vista y Windows 7 (Actualización: También disponible en versiones más recientes de Windows).
Los Forfiles pueden procesar archivos basados en nombres, extensiones de archivo y antigüedad. Por ejemplo, es posible encontrar todos los documentos en un directorio que tengan más de 20 días o todos los documentos en c:documentos que hayan sido modificados desde una fecha específica.
El comando forfiles puede combinarse 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 ruta de acceso /M máscara de búsqueda /S /C comando /D + | – {dd/MM/aaaaaa | dd}
Descripción Selecciona un archivo (o conjunto de archivos) y ejecuta un comando en ese archivo. Esto es útil para los jobs de fondo.
Lista de parámetros:
- /Ruta de acceso P Indica la ruta para iniciar la búsqueda. La carpeta por defecto es el directorio de trabajo actual (.).
- Máscara de búsqueda /M Busca archivos según una máscara de búsqueda. La máscara de búsqueda por defecto es ‘*’.
- /S Indica a los forfiles que vuelvan a los subdirectorios. Como “DIR /S”.
- Comando /C Indica el comando a ejecutar para cada archivo. Las cadenas de comandos deben estar entre comillas dobles. El comando por defecto es “cmd /c echo @file”.
Las siguientes variables pueden ser usadas en la cadena de comandos:
- @file – devuelve el nombre del archivo.
- @fname – devuelve el nombre del archivo sin extensión.
- @ext – devuelve sólo 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 los archivos.
- @fsize – devuelve el tamaño del archivo en bytes.
- @fdate – devuelve la última fecha modificada del archivo.
- @ftime – devuelve la última vez que se modificó el archivo.
Para incluir caracteres especiales en la línea de comandos, utilice el código hexadecimal para el carácter en formato 0xHHH (por ejemplo, 0x09 para la pestaña). Los comandos CMD.exe internos deben ir precedidos de “cmd /c”.
Fecha /D Selecciona archivos con una fecha de última modificación mayor o igual a (+), o menor o igual a (-), la fecha especificada utilizando el formato “dd/MM/aaaaa”; 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 de días “dd” válido puede ser cualquier número en el rango de 0 – 32768. El signo “+” se toma como signo por defecto si no se especifica.
/? Muestra este mensaje de ayuda. Este archivo de ayuda puede abrirse introduciendo el comando forfiles /? en una línea de comandos. Presione Windows-R, escriba cmd y presione enter para iniciar la línea de comandos en Windows.
El comando forfiles /P c:test /M.doc /S /D -10 busca en el directorio c:test y en 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 en función de la cadena introducida, y /D define la fecha o un intervalo de tiempo.
El comando /C se utiliza para procesar los archivos que se encuentran más adelante. Se puede utilizar, por ejemplo, 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 tiene el siguiente aspecto: /P c:test /M.doc /S /D -10 /C “cmd /c echo @fname”> test.txt
Otra posibilidad es borrar los archivos que coinciden con la búsqueda, esto se hace con el comando /C “cmd /c del @File