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 Indique à la commande forfiles d’effectuer une recherche récursive dans les sous-répertoires.
/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é :
  • Sélectionne les fichiers dont la date de dernière modification est postérieure ou égale à (+) ou antérieure ou égale à (-) la date spécifiée, où la date est dans le même format régional que votre appareil Windows, par exemple MM/JJ/AAAA pour l’anglais (États-Unis).
  • 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é.
  • Les valeurs valides pour les jours incluent n’importe quel nombre compris entre 0 et 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.

  • Vous pouvez utiliser les variables suivantes dans la chaîne de commande, comme spécifié par l’option de ligne de commande /C :

    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.
  • La commande forfiles vous permet d’exécuter une commande sur plusieurs fichiers ou de leur transmettre des arguments. Par exemple, vous pouvez exécuter la commande type sur tous les fichiers d’une arborescence avec l’extension de nom de fichier .txt. 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 :

    • Sélectionnez les fichiers par une date absolue ou une date relative à l’aide du paramètre /d .

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

    • Incluez des caractères spéciaux dans la ligne de commande à l’aide du code hexadécimal pour le caractère, au format 0xHH (par exemple, 0x09 pour une tabulation).

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

Pour afficher que le fichier texte est obsolète pour chacun des fichiers du répertoire courant qui sont antérieurs au 1er janvier 2007, tapez :

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"