Використовуйте файли для обробки файлів на основі віку

Завжди добре знати якусь магію командного рядка, оскільки інколи простіше обробляти команди таким чином.

У цьому посібнику демонструється команда 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, щоб переконатися, що видалені лише потрібні файли. Досвідчені користувачі можуть створити пакетний файл для регулярного виконання файлів.