Para aplicar un cierto acción a varios archivos desde la línea de comandos de Windows existe la instrucción forfiles.
En Windows 7, la invocación tiene los siguientes parámetros (todos son opcionales):
/P
Si no se especifica, se considera el directorio actual
/S: se procesan los subdirectorios del path recursivamente
/M
Si no se especifica, se considera *
/D { [+] | – }{ dd/mm/aaaa | N }: selecciona archivos a partir de la fecha de última modificación de cada uno.
Si no se especifica el signo -, se considera por defecto +
-dd/mm/aaaa: fecha de última modificación anterior o igual a dd/mm/aaaa
+dd/mm/aaaa: fecha de última modificación posterior o igual a dd/mm/aaaa
-N: fecha de última modificación anterior o igual a la fecha actual menos N días
+N: fecha de última modificación posterior o igual a la fecha actual más N días
/C “
Si no se especifica, se considera “cmd /c echo @file”
Si se desea utilizar un comando de CMD, deben estar precedidos por “cmd /c”
Variables disponibles en
@file: nombre del archivo
@fname: nombre de archivo sin extensión
@ext: extensión del archivo
@path: ruta de acceso completa al archivo
@relpath: ruta de acceso relativa del archivo
@isdir: “TRUE” si es un directorio y “FALSE” si es un archivo
@fsize: tamaño del archivo en bytes
@fdate: última fecha de modificación del archivo
@ftime: última hora de modificación del archivo
Ejemplos:
forfiles /P C:\logs /D -20 /C «cmd /c del @path»
Borra los archivos del directorio logs de más 20 días desde su última fecha de modificación
forfiles /C «cmd /c if @isdir==TRUE echo @file»
Imprime por pantalla los directorios que se encuentren en la ruta actual
forfiles /P C:\Documents\ /S /M *.xlsx /C «cmd /c echo @fname – @fdate»
Muestra el nombre y fecha de última modificación de cada uno de los archivos de Excel dentro del directorio de documentos (y subdirectorios)