Existe una infinidad de tareas que podemos realizar a través de la consola de comandos en Windows, una de ellas consiste en la búsqueda avanzada de ficheros en el sistema, con la ayuda del comando FORFILES. A continuación veremos cómo trabajar con este comando y sus distintos parámetros.
En primer lugar, para abrir la consola de comandos en Windows 7 debemos dirigirnos al menú Inicio y en el cuadro de búsqueda escribir «cmd«. En los resultados de la búsqueda veremos un ejecutable con el mismo nombre, damos clic con el botón derecho del ratón sobre el y elegimos la opción «Ejecutar como Administrador«.
Si bien es cierto que en Windows 7 la función de búsqueda mediante entorno gráfico ha sido mejorada en gran medida, realizar este y cualquier otro tipo de tareas mediante la la consola de comandos tiene sus ventajas. Entre estas se encuentran:
- un mayor control en las operaciones que realizamos sobre los archivos y directorios,
- un menor consumo de memoria al no tener que cargar los elementos y librerías de la interfaz gráfica,
- una mayor rapidez en la obtención de los resultados, y
- la capacidad de realizar operaciones en dispositivos remotos.
Por supuesto, queda a elección de cada uno qué método usar. Si hemos elegido el método de la consola de comandos, antes de realizar cualquier operación debemos conocer a fondo qué hace y cómo trabaja el comando a usar, el cual es en este caso FORFILES.
Descripción del comando:
FORFILES Selecciona un archivo (o conjunto de archivos) y ejecuta un comando en ese archivo. Esto es útil para trabajos por lotes.
Sintaxis:
FORFILES [/P nombre de ruta] [/M máscara de búsqueda] [/S] [/C comando] [/D [+ | -] {dd/MM/yyyy | dd}]
Modo de uso de los parámetros
1) El parámetro /P se usa para denotar la dirección donde deseamos buscar el archivo. Por ejemplo, si queremos realizar una búsqueda global de todos los archivos que contiene la unidad C:, escribimos:
FORFILES /P C:
2) El parámetro /S es utilizado para indicar que la búsqueda será realizada recursivamente en todos los subdirectorios de la ruta especificada en /P.
3) El parámetro /M se utiliza para indicar el nombre del fichero a buscar. Si por ejemplo, deseamos buscar el archivo «notas.txt» en el disco y todas las carpetas contenidas en el, de acuerdo a los parámetros que les he explicado anteriormente, tendríamos que escribir:
FORFILES /P C: /S /M «notas.txt»
Y si queremos obtener los resultados de todos los archivos de un determinado formato que se encuentran en el directorio especificado, sólo escribimos el símbolo asterisco (*) seguido de la extensión del archivo. Por ejemplo:
FORFILES /P C: /S /M *.exe (Busca todos los archivos ejecutables en el disco C: y sus subdirectorios).
4) El parámetro /C es utilizado para indicar el comando a ejecutar para cada archivo. En este caso, lo que queremos es devolver la ruta del archivo que estamos buscando, es decir, ver en la consola los resultados que hemos especificado. En este caso usaremos el comando «cmd /c echo @path».
Entonces, para efectuar la búsqueda del archivo «notas.txt» en el disco C: y todos sus subdirectorios, mostrando los resultados en pantalla, escribimos:
FORFILES /P C: /S /M «notas.txt» /C «cmd /c echo @path»
5) Por último, el parámetro /D es usado para seleccionar archivos con fecha de modificación posterior o igual a (+), o anterior o igual a (-). La fecha es especificada en uno de los siguientes formatos:
- «dd/MM/yyyy» (día, mes y año).
- «dd» (días, en el intervalo 0-32768).
Si obtenemos resultados para carpetas del sistema, a las que no se puede acceder, debemos añadir el comando «2>null» al final de la línea, para no mostrar los resultados para los cuales se arrojan errores.
Por ejemplo, para realizar la búsqueda de los archivos llamados «notas.txt» en el disco C: y todos sus subdirectorios, excluyendo los resultados para los cuales se arroja un error, escribiríamos:
FORFILES /P C: /S /M «notas.txt» /C «cmd /c echo @path» 2>null
Muchas gracias, no conocía el comando FORFILES ^^
hola amigo podrias ayudarme, como hago para copiar la direcion que muestra al final algun comando en particular?
Quisiera una vez encontrado el archivo pasarlo a una carpeta automaticamnete con la direccion que muestra en pantalla, por favor ayudame.