forfiles
Seleciona e executa um comando em um arquivo ou conjunto de arquivos. Esse comando é mais comumente usado em arquivos em lote.
Sintaxe
forfiles [/P pathname] [/M searchmask] [/S] [/C command] [/D [+ | -] [{<date> | <days>}]]
Parâmetros
Parâmetro | Descrição |
---|---|
/P <pathname> |
Especifica o caminho do qual iniciar a pesquisa. Por padrão, a pesquisa começa no diretório de trabalho atual. |
/M <searchmask> |
Pesquisa arquivos de acordo com a máscara de pesquisa especificada. A máscara de pesquisa padrão é * . |
/S | Instrui o comando forfiles a pesquisar em subdiretórios recursivamente. |
/C <command> |
Executa o comando especificado em cada arquivo. As cadeias de caracteres de comando devem ser encapsuladas entre aspas duplas. O comando padrão é "cmd /c echo @file" . |
/D [{+\|-}][{<date> | <days>}] |
Seleciona arquivos com uma data da última modificação dentro do período de tempo especificado:
|
/? | Exibe o texto de ajuda na janela cmd. |
Comentários
O comando
forfiles /S
é semelhante adir /S
.Você pode usar as seguintes variáveis na cadeia de caracteres de comando, conforme especificado pela opção de linha de comando /C:
Variável Descrição @FILE Nome do arquivo. @FNAME Nome do arquivo sem extensão. @EXT Extensão de nome de arquivo. @PATH Caminho completo do arquivo. @RELPATH Caminho relativo do arquivo. @ISDIR Avaliará como TRUE se um tipo de arquivo for um diretório. Caso contrário, essa variável será avaliada como FALSE. @FSIZE Tamanho do arquivo, em bytes. @FDATE Carimbo de data da última modificação no arquivo. @FTIME Carimbo de data/hora da última modificação no arquivo. O comando forfiles permite executar um comando em ou passar argumentos para vários arquivos. Por exemplo, você pode executar o comando type em todos os arquivos em uma árvore com a extensão de nome de arquivo .txt. Você também pode executar cada arquivo em lote (*.bat) na unidade C, com o nome do arquivo Myinput.txt como o primeiro argumento.
Esse comando pode:
Selecione arquivos por uma data absoluta ou uma data relativa usando o parâmetro /d.
Crie uma árvore de arquivos usando variáveis como @FSIZE e @FDATE.
Diferencie arquivos de diretórios usando a variável @ISDIR.
Inclua caracteres especiais na linha de comando usando o código hexadecimal para o caractere, no formato 0xHH (por exemplo, 0x09 para uma guia).
Esse comando funciona implementando o sinalizador
recurse subdirectories
em ferramentas projetadas para processar apenas um único arquivo.
Exemplos
Para listar todos os arquivos em lote na unidade C, digite:
forfiles /P c:\ /S /M *.bat /C "cmd /c echo @file is a batch file"
Para listar todos os diretórios na unidade C, digite:
forfiles /P c:\ /S /M * /C "cmd /c if @isdir==TRUE echo @file is a directory"
Para listar todos os arquivos no diretório atual com pelo menos um ano de idade, digite:
forfiles /S /M *.* /D -365 /C "cmd /c echo @file is at least one year old."
Para mostrar que o arquivo de texto está desatualizado para cada um dos arquivos no diretório atual anterior a 1º de janeiro de 2007, digite:
forfiles /S /M *.* /D -01/01/2007 /C "cmd /c echo @file is outdated."
Para listar as extensões de nome de arquivo de todos os arquivos no diretório atual no formato de coluna e adicionar uma guia antes da extensão, digite:
forfiles /S /M *.* /C "cmd /c echo The extension of @file is 0x09@ext"