Partager via


forfiles

Sélectionne et exécute une commande sur un fichier ou un ensemble de fichiers. Cette commande est la plus couramment utilisée dans les fichiers batch.

Syntax

forfiles [/P pathname] [/M searchmask] [/S] [/C command] [/D [+ | -] [{<date> | <days>}]]

Parameters

Parameter Description
/P <pathname> Spécifie le chemin d’accès à partir duquel démarrer la recherche. Par défaut, la recherche démarre dans le répertoire de travail actuel.
/M <searchmask> Recherche les fichiers en fonction du masque de recherche spécifié. Le masque de recherche par défaut est *.
/S Instructs the forfiles command to search in subdirectories recursively.
/C <command> Exécute la commande spécifiée sur chaque fichier. Les chaînes de commande doivent être encapsulées entre guillemets doubles. La commande par défaut est "cmd /c echo @file".
/D [{+\|-}][{<date> | <days>}] Sélectionne les fichiers avec une date de dernière modification dans le délai spécifié :
  • 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.
  • Sélectionne les fichiers dont la date de dernière modification est antérieure ou égale à (+) la date actuelle plus le nombre de jours spécifié, ou antérieur ou égal à (-) la date actuelle moins le nombre de jours spécifié.
  • Valid values for days include any number in the range 0–32,768. Si aucun signe n’est spécifié, + est utilisé par défaut.
/? Affiche le texte d’aide dans la fenêtre cmd.

Remarks

  • La commande forfiles /S est similaire à 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 Nom de fichier sans extension.
    @EXT Extension de nom de fichier.
    @PATH Chemin d’accès complet du fichier.
    @RELPATH Chemin relatif du fichier.
    @ISDIR Prend la valeur TRUE si un type de fichier est un répertoire. Sinon, cette variable prend la valeur FALSE.
    @FSIZE Taille du fichier, en octets.
    @FDATE Horodatage de date de dernière modification sur le fichier.
    @FTIME Horodatage de la dernière modification sur le fichier.
  • The forfiles command lets you 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. Vous pouvez également exécuter chaque fichier de lots (*.bat) sur le lecteur C, avec le nom de fichier Myinput.txt comme premier argument.

  • Cette commande peut :

    • Select files by an absolute date or a relative date by using the /d parameter.

    • Générez une arborescence d’archive de fichiers à l’aide de variables telles que @FSIZE et @FDATE.

    • Différenciez les fichiers des répertoires à l’aide de la variable @ISDIR.

    • Include special characters in the command line by using the hexadecimal code for the character, in 0xHH format (for example, 0x09 for a tab).

  • Cette commande fonctionne en implémentant l’indicateur recurse subdirectories sur les outils conçus pour traiter un seul fichier.

Examples

Pour répertorier tous les fichiers batch sur le lecteur C, tapez :

forfiles /P c:\ /S /M *.bat /C "cmd /c echo @file is a batch file"

Pour répertorier tous les répertoires sur le lecteur C, tapez :

forfiles /P c:\ /S /M * /C "cmd /c if @isdir==TRUE echo @file is a directory"

Pour répertorier tous les fichiers du répertoire actif qui ont au moins un an, tapez :

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."

Pour répertorier les extensions de nom de fichier de tous les fichiers du répertoire actif au format de colonne et ajouter un onglet avant l’extension, tapez :

forfiles /S /M *.* /C "cmd /c echo The extension of @file is 0x09@ext"