Я заядлый геймер. У меня есть диск, посвященный записи моих игр. Я собираюсь просто записать все на этот 500 ГБ SSD, а я что-то получаю, только если это заметно. Для этого я хотел бы установить политику хранения на диске, чтобы любые файлы старше ... 12 часов удалялись.

Гуглить это сложно из-за большого количества результатов Windows Server. Есть ли какая-то функциональность или программное обеспечение, которое я могу использовать для этого?

2 ответа2

0

Я бы использовал либо пакетный скрипт, либо скрипт powershell. После создания пакетного файла или сценария PowerShell вы можете создать запланированное задание в планировщике заданий, чтобы запускать его, скажем, каждые 1 час.

Но я, вероятно, использовал бы это для командования (только в целых днях).

forfiles -p "D:\Videos" -s -m *.* -d -1 -c "cmd /c del @path"

В Powershell используйте эту команду (это займет несколько часов):

Get-ChildItem -Path "D:\Videos" -Recurse -force -ErrorAction SilentlyContinue | where {$_.LastwriteTime -lt  (Get-Date).AddHours(-12) } | Remove-Item -Verbose -Force -Recurse -ErrorAction SilentlyContinue

Просто замените D:\Videos действительным каталогом, в котором восстановлены эти видео. Замените значение 1 количеством дней в примере пакета. Замените значение -12 на количество часов ( оставьте минус) и замените addHours на addMinutes или addMonths addSeconds или addYears зависимости от того, что вы хотите сделать.

Удачи!

0

Я недавно ответил на очень похожий вопрос здесь

Короче говоря, вы можете использовать автономную сборку GNUWin32 команды Linux "Найти", чтобы удалить любой файл старше X минут.

Настроить

  • Загрузите двоичные файлы (findutils-4.2.20-2-bin) и зависимости (findutils-4.2.20-2-dep) .zip по ссылке выше.
  • Извлеките и скопируйте содержимое папки зависимостей в папку binaries (не стесняйтесь перезаписывать).
  • Переименуйте find.exe в папке "bin" (например, gnu_find.exe), чтобы избежать конфликтов с любыми командами Windows.

Предполагая вышеупомянутое переименование, команда для поиска и удаления файлов старше 12 часов будет выглядеть так:

     gnu_find.exe "C:\Path\To\Files" ! -mmin -720 -type f -delete

где, например, -720 представляет количество минут (60 * 12 в этом случае). Не откладывай! Опция (отрицание), так как без нее файлы менее (менее) 12 часов будут удалены.

Обратите внимание, что вы можете оставить off -delete, если вы хотите просто просмотреть файлы, с которыми он будет работать.

GNUWin32 Find также поддерживает опцию -name, которая позволяет сопоставлять шаблоны со звездочками, например

    gnu_find.exe "C:\Path\To\Files" ! -mmin -720 -type f -name "text*" -delete

Предостережения об имени

  • Помните, что -name всегда должно появляться перед -delete, иначе это не будет иметь никакого эффекта.
  • Вы можете использовать звездочки по своему усмотрению для сопоставления с образцом (в том числе в нескольких позициях), но будьте осторожны с включением периодов со звездочками (то есть, если сопоставление расширений файлов является проблемой, просто используйте «имя файла *» или «* ext»). Это связано с тем, как командная строка Windows интерпретирует вещи.
  • Вы можете найти конкретные имена (например, «filename.txt»), но в Windows вы должны включить расширение как GNUWin32 Find. Рассмотрите всю строку имени файла ("filename" <> «filename.txt»)

автоматизация

Вы можете использовать Task Scheduler для автоматического запуска, но, как я подробно описал в самой первой ссылке, это не может быть предпочтительным вариантом. Я лично рекомендую Linux-приложение в стиле "cron" (как подробно описано в этом ответе).

Windows 10

Вышеприведенное, вероятно, будет работать с любой версией Windows, но современные версии Windows 10 должны иметь возможность запускать подсистему Ubuntu Linux. "find" и "cron" являются чрезвычайно простыми и должны быть доступны с этим (хотя эта версия "cron" кажется связанной с открытым окном, поэтому может не совсем подходить для ваших целей).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .