Возможно, самый простой способ удалить файлы определенного возраста — через командную строку, пакетный файл или даже скрипт. Да, конечно, вы все еще можете сделать это из мощного проводника, поставляемого с Windows, но он определенно требует больше действий, чем простая команда.
Например, если мне нужно найти в OneDrive список PDF-файлов старше года, я могу открыть командную строку и выполните следующую команду.
ForFiles/p "z: OneDrive"/s/m * .PDF/d -365/c "cmd/c echo @file"
, в котором
- /p для указания пути для начала поиска.
- /s для рекурсивного поиска во всех подпапках.
- /m, чтобы определить маску поиска для указанных файлов. В этом случае используйте * .PDF, чтобы найти все файлы PDF.
- /d, чтобы выбрать файлы с датой последнего изменения. -365 просто означает год назад.
- /c, чтобы указать команду для выполнения каждого файла, найденного при поиске. Командную строку необходимо заключить в двойные кавычки. «Cmd/c echo @file» — это команда по умолчанию, если не указано иное. При необходимости вы можете использовать другие переменные, например:
- @path для полного пути к файлу.
- @fsize для размера файла.
- @fdate и @ftime для даты и времени файла.
Чтобы удалить файлы, найденные в search, замените в команде « echo » на « del ».
ForFiles/p «z: OneDrive» /s/m * .PDF/d -365/c "cmd/c del @file"
Если вам нужно делать это часто или на разных компьютерах, вы можете поместить это в пакетный файл поэтому вы можете запустить его, дважды щелкнув по нему.
Вы также можете сделать то же самое с PowerShell , если хотите, с помощью командлета Get- ChildItem и Where-Object .
Get-ChildItem "z: OneDrive" -Recurse | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AddDays (-365)) -and ($ _. Extension -match "PDF")}
Чтобы удалить элементы найденный в приведенном выше командлете, передайте результат командлету Remove-Item.
Get-ChildItem "z: OneDrive" -Recurse | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AddDays (-365)) -and ($ _. Extension -match "PDF")} | Удалить элемент