Forfiles
Selects and executes a command on a file or set of files. This command is useful for batch processing.
For examples of how to use this command, see Examples.
Syntax
forfiles [/p <Path>] [/m <SearchMask>] [/s] [/c "<Command>"] [/d [{+|-}][{<Date>|<Days>}]]
Parameters
|
Parameter
|
Description
|
|---|
|
/p <Path>
|
Specifies the path from which to start the search. By default, searching starts in the current working directory.
| |
/m <SearchMask>
|
Searches files according to the specified search mask. The default search mask is *.*.
| |
/s
|
Instructs the forfiles command to search into subdirectories recursively.
| |
/c "<Command>"
|
Runs the specified command on each file. Command strings should be enclosed in quotation marks. The default command is "cmd /c echo @file".
| |
/d [{+|-}][{<Date>|<Days>}]
|
Selects files with a last modified date within the specified time frame.
-
Selects files with a last modified date later than or equal to (+) or earlier than or equal to (-) the specified date, where Date is in the format MM/DD/YYYY.
-
Selects files with a last modified date later than or equal to (+) the current date plus the number of days specified, or earlier than or equal to (-) the current date minus the number of days specified.
- Valid values for Days include any number in the range 0–32,768. If no sign is specified, + is used by default.
| |
/?
|
Displays help at the command prompt.
|
Remarks
-
Forfiles is most commonly used in batch files.
-
Forfiles /s is similar to dir /s.
-
You can use the following variables in the command string as specified by the /c command-line option.
|
Variable
|
Description
|
|---|
|
@FILE
|
File name.
| |
@FNAME
|
File name without extension.
| |
@EXT
|
File name extension.
| |
@PATH
|
Full path of the file.
| |
@RELPATH
|
Relative path of the file.
| |
@ISDIR
|
Evaluates to TRUE if a file type is a directory. Otherwise, this variable evaluates to FALSE.
| |
@FSIZE
|
File size, in bytes.
| |
@FDATE
|
Last modified date stamp on the file.
| |
@FTIME
|
Last modified time stamp on the file.
|
- With forfiles, you can run a command on or pass arguments to multiple files. For example, you could run the type command on all files in a tree with the .txt file name extension. Or you could execute every batch file (*.bat) on drive C, with the file name "Myinput.txt" as the first argument.
-
With forfiles, you can do any of the following:
-
Select files by an absolute date or a relative date by using the /d parameter.
-
Build an archive tree of files by using variables such as @FSIZE and @FDATE.
-
Differentiate files from directories by using the @ISDIR variable.
-
Include special characters in the command line by using the hexadecimal code for the character, in 0xHH format (for example, 0x09 for a tab).
-
Forfiles works by implementing the recurse subdirectories flag on tools that are designed to process only a single file.
Examples
To list all of the batch files on drive C, type:
forfiles /p c:\ /s /m *.bat /c "cmd /c echo @file is a batch file"
To list all of the directories on drive C, type:
forfiles /p c:\ /s /m *.* /c "cmd /c if @isdir==true echo @file is a directory"
To list all of the files in the current directory that are at least one year old, type:
forfiles /s /m *.* /d -365 /c "cmd /c echo @file is at least one year old."
To display the text "File is outdated" for each of the files in the current directory that are older than January 1, 2007, type:
forfiles /s /m *.* /d -01/01/2007 /c "cmd /c echo @file is outdated."
To list the file name extensions of all the files in the current directory in column format, and add a tab before the extension, type:
forfiles /s /m *.* /c "cmd /c echo The extension of @file is 0x09@ext"
|
Forfiles
Selecciona y ejecuta un comando en un archivo o un conjunto de archivos.
Este comando es útil para el procesamiento por lotes.
Para obtener ejemplos de cómo utilizar este comando, vea ejemplos.
Sintaxis
forfiles [/p <Path>] [/m <SearchMask>] [/s] [/ c "<Command>"] [/d [{+ |-}] [{<Date> | <Days>}]]
Parámetros
|
Parámetro
|
Descripción
|
|
/p <Path>
|
Especifica la ruta de acceso desde el que se va a iniciar la búsqueda.
De forma predeterminada, la búsqueda comienza en el directorio de trabajo actual.
|
|
/m <SearchMask>
|
Busca archivos de acuerdo con la máscara de búsqueda especificados.
La máscara de búsqueda predeterminada es *. *.
|
|
/s
|
Indica al comando forfiles para buscar en los subdirectorios de forma recursiva.
|
|
/c "<Command>"
|
Se ejecuta el comando especificado en cada archivo.
Cadenas de comandos deben encerrarse entre comillas.
El comando predeterminado es "cmd /c echo @ file".
|
|
/d [{+ |-}] [{<Date> | <Days>}]
|
Selecciona archivos con una fecha de última modificación en el marco de tiempo especificado.
-
Selecciona archivos con una fecha de última modificación posterior o igual a (+) o anterior o igual a (-) la fecha especificada, donde es la
+
fecha
-
en el formato DD/MM/AAAA.
fecha
+-
-
Selecciona archivos con una fecha de última modificación posterior o igual a (+) de la fecha actual más el número de días especificado, o anterior o igual a (-) la fecha actual menos el número de días especificado.+-
-
-
Los valores válidos para días incluyen cualquier número en el código de la gama, 768.
Si no se especifica ninguna señal, + se utiliza de forma predeterminada.
|
|
/?
|
Muestra la Ayuda en el símbolo del sistema.
|
Observaciones
-
Forfiles se suele utilizar en archivos por lotes.
-
Forfiles /s es similar a/s. dir
-
Puede utilizar las siguientes variables en la cadena de comando especificado por la opción de línea de comandos /c .
|
Variable
|
Descripción
|
|
@ FILE
|
Nombre de archivo.
|
|
@ FNAME
|
Nombre de archivo sin extensión.
|
|
@ EXT
|
Extensión de nombre de archivo.
|
|
@ PATH
|
Ruta de acceso completa del archivo.
|
|
@ RELPATH
|
Ruta de acceso relativa del archivo.
|
|
@ ISDIR
|
Se evalúa como TRUE si un tipo de archivo es un directorio.
De lo contrario, esta variable se evalúa como FALSE.
|
|
@ FSIZE
|
Tamaño del archivo, en bytes.
|
|
@ FDATE
|
Última marca de fecha de modificación en el archivo.
|
|
@ FTIME
|
Última marca de hora de modificación del archivo de.
|
-
Con forfiles, puede ejecutar un comando en o pasar argumentos a varios archivos.
Por ejemplo, podría ejecutar el comando type en todos los archivos en un árbol con la extensión .txt.
O podría ejecutar cada archivo por lotes (* .bat) en la unidad C, con el archivo de nombre "MiEntrada.txt" como primer argumento.
-
Con forfiles, puede realizarlas acciones siguientes:
-
Seleccionar archivos por una fecha absoluta o una fecha relativa mediante el parámetro /d .
-
Crear un árbol de archivos históricos mediante variables como @ FSIZEy @ FDATE.
-
Diferenciar entre archivos y directorios mediante el uso de @ ISDIRvariable.
-
Incluir caracteres especiales en la línea de comandos mediante el código hexadecimal del carácter en 0 x formatoHH (por ejemplo, 0 x 09 para una ficha).
-
Forfiles funciona mediante la implementación de la bandera de recursividad de subdirectorios en las herramientas que están diseñadas para procesar un solo archivo.
Ejemplos
Para mostrar todos los archivos de proceso por lotes en la unidad C, escriba:
forfiles /p c:\ /s /m *.bat /c "cmd /c echo @ file es un archivo por lotes"
Para obtener una lista de todos los directorios en la unidad C, escriba:
forfiles /p c:\ /s /m *. * /c "cmd /c if @ isdir == true echo @ file es un directorio"
Para mostrar todos los archivos en el directorio actual que tienen una antigüedad de al menos un años, escriba:
forfiles /s /m *. * /d-365 /c "cmd /c echo @ file es al menos un año de edad."
Para mostrar el texto "Elarchivo está obsoleto" para cada uno de los archivos en el directorio actual que son anteriores a 1 de enero de 2007, escriba:
forfiles /s /m *. * /d-01/01/2007 /c "cmd /c echo @ file está anticuado."
Para enumerar las extensiones de nombre de archivo de todos los archivos en el directorio actual en formato de columna y agregar una ficha antes de la extensión, escriba:
forfiles /s /m *. * /c "cmd /c echo la extensión de @ file es 0x09@ext"
|