Завжди добре знати якусь магію командного рядка, оскільки інколи простіше обробляти команди таким чином.
У цьому посібнику демонструється команда Forfiles у Windows Vista та Windows 7 (оновлення: доступно також у новіших версіях Windows).
Форфіли можуть обробляти файли на основі імен, розширень файлів та віку. Наприклад, можна знайти всі документи в каталозі, старші 20 днів, або всі документи в документах c: \, які були змінені з певної дати.
Команда forfiles може бути поєднана з параметрами обробки для видалення цих файлів або для створення списку всіх файлів, які відповідають фільтрам. Давайте докладніше розглянемо команду forfiles.
ФОРМУЛИ [/ P ім'я шляху] [/ M пошукова маска] [/ S] [/ C команда] [/ D [+ | -] dd / MM / yyyy]
Опис: Вибирає файл (або набір файлів) і виконує команду над цим файлом. Це корисно для пакетних завдань.

Список параметрів:
- / P ім'я шляху Позначає шлях для початку пошуку. За замовчуванням папка - це поточний робочий каталог (.).
- / M searchmask Пошук файлів відповідно до пошукової маски. Пошукова маска за замовчуванням - "*".
- / S Інструктує файли для повторного запису в підкаталоги. Як і "DIR / S".
- Команда / C Позначає команду для виконання кожного файлу. Рядки команд повинні бути загорнуті у подвійні лапки. Команда за замовчуванням - "cmd / c echo @file".
У командному рядку можуть бути використані наступні змінні:
- @file - повертає ім'я файлу.
- @fname - повертає ім'я файлу без розширення.
- @ext - повертає лише розширення файлу.
- @path - повертає повний шлях до файлу.
- @relpath - повертає відносний шлях до файлу.
- @isdir - повертає "TRUE", якщо тип файлу є каталогом, і "FALSE" для файлів.
- @fsize - повертає розмір файлу в байтах.
- @fdate - повертає останню змінену дату файлу.
- @ pol - повертає останній час зміни файлу.
Щоб включити до командного рядка спеціальні символи, використовуйте шістнадцятковий код для символу у форматі 0xHH (наприклад, 0x09 для вкладки). Внутрішні команди CMD.exe повинні передувати "cmd / c".
/ D дата Вибирає файли з останньою зміненою датою, що перевищує або дорівнює (+), або менше або дорівнює (-), вказаній даті, використовуючи формат "dd / MM / yyyy"; або вибирає файли з останньою зміненою датою, що перевищує або дорівнює (+) поточній даті плюс "дд" днів, або менше або дорівнює (-) поточній даті мінус "дд" днів. Дійсною кількістю "дд" може бути будь-яке число в діапазоні від 0 до 32768. "+" вважається знаком за замовчуванням, якщо не вказано.
/? Відображає це довідкове повідомлення. Цей файл довідки можна відкрити, ввівши команду forfiles /? в командному рядку. Натисніть Windows-R, наберіть cmd і натисніть клавішу Enter, щоб запустити командний рядок у Windows.
Команда forfiles /P c:\test\ /M .doc /S /D -10
пошук у каталозі c: \ test та у всіх його підкаталогах для файлів із розширенням .doc, які старші 10 днів.
Параметр / p, за яким слідує каталог, визначає стартовий каталог, / s включає підкаталоги в пошуку, / m фільтрує файли та папки на основі введеного рядка, а / D визначає дату або часовий проміжок.
Команда / C використовується для обробки файлів, які знаходяться далі. Наприклад, вона може бути використана для запуску наступної команди: /C "cmd /c echo @fname" > test.txt
повторює імена кожного знайденого файлу та зберігає результати в text.txt в одному каталозі.
Потім повна команда виглядає таким чином forfiles /P c:\test\ /M .doc /S /D -10 /C "cmd /c echo @fname" > test.txt
Інша можливість - видалити файли, які відповідають пошуку, це робиться за допомогою команди /C "cmd /c del @File
Однак рекомендується спочатку перевірити вихід, перш ніж видавати команду delete, щоб переконатися, що видалені лише потрібні файли. Досвідчені користувачі можуть створити пакетний файл для регулярного виконання файлів.