Программа для удаления файлов по расписанию
Как вы удаляете временные файлы? Вручную запускаете CCleaner или аналогичную программу, либо настроили ее запуск по расписанию? Я обхожусь встроенными средствами Windows, причем все сводится буквально к одной команде. Я хочу поделиться с вами двумя скриптами, которые давно служат мне верой и правдой для удаления ненужных файлов.
В Windows есть утилита для очистки диска, которую можно настроить для удаления заданных категорий файлов по расписанию. Она легко справится с очисткой временных файлов из расположений, известных системе, но не позволит удалять ненужные файлы из заданной вами папки. С помощью скриптов можно очищать не только временные файлы, но и любую папку. Например, я удаляю файлы из папок Test и Temp, которые служат для экспериментов и временного хранения файлов как в загрузках, так и документах.
В отличие от программных чистильщиков, скрипты можно гибко настроить, а регулярность выполнения очистки легко реализовать с помощью планировщика заданий Windows.
В статье вы найдете примеры скриптов и рассказ о том, как настроить задачу в планировщике одной командой. Вы также сможете скачать готовые файлы и создать задание для очистки папок за пару минут.
Скрипты
Вы можете воспользоваться на выбор скриптами CMD, VBS и PowerShell.
Можно использовать утилиту командной строки forfiles.exe, входящую в состав Windows 7 и новее (когда-то она входила в Windows 2000 Resource Kit). Одной командой удаляются все файлы из указанной папки и вложенных в нее.
Команда для выполнения
- Вместо %temp% (временной папки в профиле) подставьте свою папку (параметр /p)
- Возраст файлов по умолчанию 14 дней (параметр /d), но вы можете задать любое значение
- Можно удалять файлы определенного расширения по маске (например, /m *.log)
- За рекурсивное удаление (во вложенных папках) отвечает параметр /s
Конечно, в скрипте вы можете использовать несколько команд, каждая из которых будет удалять заданную папку. Справка по использованию утилиты вызывается командой forfiles /?.
Приведенный ниже скрипт VBS удаляет все файлы и папки, включая защищенные, с выводом списка удаленных файлов.
Команда для выполнения
Скрипт можно запускать из командного файла (CMD).
- Вместо %windir%\temp подставьте свою папку (в этом примере удаляются файлы из временной папки в системном каталоге)
- Возраст файлов по умолчанию 14 дней, но вы можете задать любое значение
- Список удаленных файлов будет по умолчанию сохранен в файле %windir%\system32\MyCleanupScript.Log, хотя можно указать любой путь и имя файла
Как и в случае с утилитой forefiles.exe, можно реализовать очистку различных папок, указав каждую в отдельной команде.
PowerShell
Скрипт на PowerShell был в блоге Сергея Мариничева в рамках урока об операциях с файлами, но теперь страница доступна только в архиве интернета. Я скопировал ключевое содержимое для вас:
Выполнение очистки по расписанию
Для выполнения очистки папки по расписанию нужно создать скрипт с именем cleanup.cmd, содержащий команду для запуска, и скопировать его в любую папку из PATH (например, %windir%\system32). Поместите туда же скрипт VBS или PowerShell, если вы решили использовать его, а не утилиту forfiles.ехе.
Задание в планировщике создается одной командой:
Задание с именем CleanUp будет выполняться:
- с наивысшими правами (параметр /RL)
- раз в неделю (параметр /SC)
- по воскресеньям (параметр /D)
- в 14:00 (параметр /ST)
Откройте Пуск – Поиск – Планировщик заданий и вы увидите в библиотеке планировщика задание CleanUp.
Можете проверить работу задания в планировщике. Для этого щелкните правой кнопкой мыши по заданию и выберите Выполнить.
Готовые файлы
Загрузите архив и распакуйте в любую папку. В архиве варианты forfiles и VBS.
- Задайте путь к папке и возраст файлов в скрипте CleanUp.cmd в одной из папок (каждая соответствует одному из описанных выше способов), после чего скопируйте все содержимое папки в %windir%\system32.
- Щелкните правой кнопкой мыши на файле schedule.cmd и выберите Запуск от имени администратора, чтобы создать задание.
Благодарности
Авторами скриптов, которые я когда-то почерпнул из этой темы конференции OSZone, являются Keeper2006 и amel27 соответственно. В этой же теме вы найдете другие интересные варианты решения данной задачи, и туда же следует направлять вопросы по доработке скриптов под свои нужды.
А как вы избавляетесь от ненужных файлов – программой или скриптом? Настроена ли у вас очистка по расписанию?
Вадим - владелец этого блога, и почти все записи здесь вышли из-под его пера. Подробности о блоге и авторе здесь. Поддержать автора вы можете тут.
Вас также может заинтересовать:
Подпишитесь на канал и читайте интересные записи чаще! Есть вопросы? Задайте их в чате.
комментариев 75
Великолепно! Взял на вооружение. Сам чищу по расписанию планировщика заданий следующим скриптом:
Ваша оценка: 0 Ваша оценка: +1equinox, я рад, что вам понравился скрипт. Как вижу, вы использовали похожий метод, но удаляли все целиком. Поскольку я часто открываю файлы без сохранения, они оседают во временных папках. И я предпочитаю иметь двухнедельную подушку, на случай, если они понадобятся.
Мне очень приятно, что вы узнаете много нового из моего блога :) Что же касается обычных пользователей, то мой блог не для них. Он для необычных людей, которые стремятся узнать что-то новое о Windows и расширить свой кругозор :)
Годится! Согласны? +8Интересный вариант очистки, я пользовался CMD
На который в групповых политиках запланировано выполнение при выходе из системы. Ваш скрипт заинтересовал расширенными возможностями. Спасибо.
Ваша оценка: +3Спасибо. Давно ищу метод очистки дисков от временных файлов на ПК в домене. Этот вопрос пока не гуглил, а можно ли создавать задания в планировщике через GPO? Тогда можно использовать один из этих скриптов или ccleaner с ключом /auto.
Ваша оценка: 0IWS, это то же самое, что у equinox, просто код слегка другой.
А зачем? Поставьте в качестве логон/логофф скрипта и все.
Ваша оценка: +2Доброго дня, всем!
после чего скопируйте все содержимое папки в %windir%\system32.
, по-моему здесь было бы правильно написать копируем папку CleanUp ,так как в Schdule.cmd указан путь: %WINDIR%\system32\cleanup
А в целом все такие же интересные и познавательные материалы, как и раньше, так держать!
В schedule.cmd действительно написано
Но там нет слэша в конце, а это значит, что будет выполнен исполняемый файл с именем cleanup вне зависимости от его расширения.
Проверьте сами. Положите в System32 файл cleanup.bat
и выполните в командной строке
Ваша оценка: +3 Ваша оценка: 0Возможно, они младше двух недель, ибо этот параметр задан в скрипте.
Спасибо за теплые пожелания! :)
Ваша оценка: +2осталось только добавить что в пакете sysinternals есть маленькая утилита sdelete помогающая безвозвратно удалять файлы.
Ваша оценка: +2SERG, для очистки временных файлов sdelete не нужна. Это, скорее, для укрепления конфиденциальности, что в домашних условиях не особо востребовано.
Ваша оценка: 0Спасибо, взял на вооружение.
Хотелось бы узнать как можно настроить планировщик, что бы задание выполнялось при выключении или выходе из системы пользователя.
Спасибо!
взял на вооружение. Но только добавил не в планировщик, а сделал ярлычок в Total CMD, поместив рядом с VBS для создания папки с именем даты и новым текстовиком)
Не подскажете, как можно сделать еще файлик для чистки дисков, скажем, убирать файлы .bak? Порой процедура очень нужная :)
Очень рад, что зайдя на OSZONE, я увидел ссылку сюда. Хороший блог, хоть многое и знакомо, но нравится как вы объясняете. Спасибо за труд!
Ваша оценка: +1Что касается вашего вопроса про bak-файлы, то:
1. Определите список папок, в которых они создаются
2. Выполняйте для каждой папки команду forefiles.exe с ключом /m *.bak
Практически уже ничего не чищу. Поскольку всё временное находится в стандартных расположениях, раз в полгода захожу во встроенную очистку диска (за это время успевает скопиться 2,5-4GB мусора), удаляю.
Почему не чищу с фанатизмом? Всё предельно просто. HDD распределялся таким образом, чтобы на системном разделе оставался приличный запас свободного места. 4GB мусора никак на скорость работы не влияют.
Morpheus, прямой зависимости между скоростью работы и наличием временных файлов нет. Но есть другие факторы, по которым я не считаю нужным держать на диске по 2-4 Гб мусора на протяжении полугода.
Для оптимальной производительности HDD нужно дефрагментировать, и чем больше мусора, тем дольше проходит этот процесс. Да, в Windows 7 он выполняется в фоне, поэтому незаметен. Однако дефрагментация этих файлов создает ненужную нагрузку на HDD, что теоретически сокращает его срок службы.
Да и вообще, зачем гонять мусор по диску, если его можно удалить :)
Ваша оценка: +1 Ваша оценка: 0Подскажите, как удалять файлы из директории с исключением?
Пример:
Надо удалить все файлы и папки кроме одной папки.
Ну вы блин даётё
ППц.
Это не решение проблемы.
Во первых скрипт это фаил а значит он должен гдето лежать куда пользователь должен иметь доступ.
Во вторых в папку windir\temp орбычный юзер даже доступ может не имеет, ибо у него есть свой темп который лежит в %temp%.
В 3 папку %temp% планировщиком не очистить ибо планировщик выполняет задачи от имени, а не для текущего пользователя(вы же понимаете что у каждого юзера папка %temp% своя), тоесть запускать скрипт нуно во время Логона(ЛогОффа).
Вот раборчий вариант.
Просто добавить в групповые политики в пункт User Configuration\Police\Windows Settings\Scripts\LogOn
Рабаотет для XP и 7(для всех NT5 и NT6)
Какой проблемы? Скрипт полностью справляется с задачей, отраженной в заголовке и содержании статьи.
То же самое можно сказать и про ваш скрипт :)
В статье не было ничего сказано про %WinDir%\Temp, но при запуске из планировщика с максимальными правами все будет работать, если пользователь обладает правами админа.
Годится! Согласны? +6%AllUsersProfile%\Application Data\Microsoft\Dr Watson
%Windir%\minidump
%SystemRoot%\Memory.dmp
1.Удалить только те %Windir%/$NtUninstallКБ Номер$-папки, созданные более месяца назад, как создать резервную копию файлы обновлений Windows. Не следует удалять те, которые были созданы за последние 30 дней.
2.Чтобы удалить кэш загрузки обновлений Windows, удалите все папки в папке %Windir%\SoftwareDistribution\download, которые были создано более 10 дней назад.
3.Удалите следующие файлы журнала в папке % Windir %:
KB*.log
Setup*.log
Setup*.old
SetupLog.txt
файле Winnt32.log
SET*.tmp
1.Удалите папку %Windir%\$NtServicePackUninstall$ на Удалите папки резервного копирования для пакетов обновления для Windows XP.
2.Удалить папку % windir%\ServicePackFiles для удаления установочные файлы и папки кэша для службы Windows XP пакеты обновления.
Нашёл вас через oszone
А так же, как удалить всё из папки профиля пользователей, работающих за 1 пк файлы по маске и старше n дней из заданной папки или удалить папку по маске и старше n дней, пример: удалить всё для пользователь1 и пользователь2 из C:\Documents and Settings\пользователь1\del\*.* и C:\Documents and Settings\пользователь2\del\*.* или саму папку del (маска), если она старше n дней, выполять надо в не зависимости от того, какой пользователь работает с пк?
В конце записи есть ссылка на тему в форуме по скриптам, обратитесь туда, плиз.
Ваша оценка: 0Вадим, а можно в этом запросе
сделать так чтобы оставалась 1 (последняя) копия не зависимо от даты. Это мне нужно, на случай сбоя резервного копирования т.к. этой командой я удаляю старые резервные копии.
Ваша оценка: 0 Ваша оценка: +1 Ваша оценка: 0Андрей, я понятия не имею, как в VBS обрабатываются пути с кириллицей. Спросите в указанной теме форума.
Но ничто не мешает вам использовать forfiles, сохранив скрипт в кодировке OEM.
Ваша оценка: 0Это все понятно, а вот можно изменит скриптом адрес который находится по умолчанию в %TEMP% например на D:\temp
Ваша оценка: 0 Ваша оценка: 0А можно в данный скрипт внести изменении чтобы не удалялись пара каталогов с данными из этой папки?
Ваша оценка: 0 Ваша оценка: 0Спасибо. Не обратил внимания.
Ваша оценка: 0Подскажите как автоматизировать очистку папки AppData/Temp в профиле пользователя, чтобы удалялось из папки всё . У меня ничего не получается.
Ваша оценка: 0Сергей, а что конкретно вы сделали, что у вас ничего не получается?
Ваша оценка: 0 Ваша оценка: 0Сергей, слэши в путях неправильные. C:\users\ надо.
Ваша оценка: 0Скажите нет ли способа чистить папку tmp на хостинге , после установки плагинов и тп. она засоряется а в ручную долго это делать?
Ваша оценка: 0Вячеслав, очевидно, надо запускать какой-то скрипт на сервере, на котором крутится ваш сайт :)
Ваша оценка: 0это понятно , думал вы можете скрипт посоветовать , ну даладно.
Ваша оценка: 0Вячеслав, как я могу советовать скрипт, если я даже не знаю ОС, под управлением которой работает сервер? :) Для Windows вы скрипт уже знаете, гуд лак!
Ваша оценка: 0 Ваша оценка: 0 Ваша оценка: 0 Ваша оценка: 0Антон, даже если вы не владеете CMD, можно погуглить
Ваша оценка: 0Использую скрипт VBS для очистки от временных файлов; но вот что раздражает так это то, что при выполнении файлика CleanUp.cmd с двумя командами запуска скриптов для чистки пользовательского и системного TEMP каталогов на доли секунд появляется и исчезает черное окно интерпретатора команд. Можно каким либо способом сделать чтобы это окно не появлялось ?
Ваша оценка: 0Можно запуск скрипта предварять start /min …
Ваша оценка: 0Использую данную команду для автоматического удаления файлов внутри своей временной папки. Удаляет хорошо, однако после работы основной программы остается не только файл temp но и log. Расширения нет и данный скрипт на нем спотыкается. Как обойти?
Заранее спасибо.
Вадим, речь идет об команде:
Ваша оценка: 0Сергей, речь о том, что запросы на изменение скрипта нужно направлять в форум.
В Windows 10 вы можете использовать командную строку и планировщик задач, чтобы автоматически удалять файлы старше определенного количества дней, чтобы освободить место и сохранить ваши файлы организованными.
Если вы храните временные файлы из Интернета или проекты в разных папках, можно использовать команду ForFiles в командной строке и планировщике задач, чтобы удалить файлы из любой папки старше определенного количества дней.
В этом руководстве вы узнаете, как вручную удалять файлы, которые не были изменены в течение указанного количества дней, и как создать автоматизированную задачу, которая будет удалять файлы старше определенного количества дней в любой папке на Windows 10.
Важное замечание: Перед запуском команды в папке, которую вы хотите организовать, протестируйте команду с помощью тестовой папки, так как использование неправильных параметров и другие ошибки могут привести к удалению неправильных файлов.
Как использовать ForFiles для удаления файлов старше X дней в Windows 10
Если у вас есть разные папки с большим количеством файлов и вы хотите очистить их, удалив те файлы, которые старше определенного количества дней, вы можете использовать команду ForFiles.
Чтобы использовать команду ForFiles для удаления файлов старше определенного количества дней, выполните следующие действия:
- Откройте Пуск в Windows 10.
- Найдите командную строку , щелкните правой кнопкой мыши результат и выберите параметр « Запуск от имени администратора» .
- Введите следующую команду, чтобы удалить файлы, которые не были изменены за последние 30 дней, и нажмите Enter :
Разбивка команд ForFiles
Если вы хотите узнать больше об этих ключах, используйте ForFiles /? команду.
Как использовать Task Scheduler для автоматического удаления файлов старше X дней в Windows 10
Команда в предыдущих инструкциях позволяет вам удалять файлы в папке старше 30 дней, но вам нужно открывать командную строку и выполнять команду вручную каждый раз, когда вы хотите освободить место.
Если вы хотите автоматизировать процесс, вам нужно использовать планировщик задач в Windows 10, чтобы создать задачу, которая выполняет команду с заданными интервалами.
Чтобы создать запланированное задание с помощью команд ForFiles для удаления файлов, которые не изменились за некоторое время, выполните следующие действия:
- Разрешить выполнение задачи по требованию.
- Запустите задачу как можно скорее после того, как запланированный запуск пропущен.
- Если задача не выполняется, перезапустите каждый.
После того, как вы выполните шаги, команда будет запущена по расписанию, удалив файлы в расположении, которое старше указанного вами количества дней. Только не забудьте изменить имя или переместить папку в другое место. В противном случае задача не будет выполнена.
Иногда надо сделать удаление файлов старше n дней. Например Backup’ ы. Можно делать это вручную, отсортировать их по дате и удалить, а можно воспользоваться скриптом. В данном примере мы рассмотрим скрипт для удаления файлов старше n дней и добавим задание в планировщик Windows Server 2012R2.
Иногда надо сделать удаление файлов старше n дней. Например Backup’ ы. Можно делать это вручную, отсортировать их по дате и удалить, а можно воспользоваться скриптом. В данном примере мы рассмотрим скрипт для удаления файлов старше n дней и добавим задание в планировщик Windows Server 2012R2.
Содержание:
1. Скрипт удаления файлов старше n-дней
2. Создание задания в планировщике задач
Скрипт на самом деле очень простой, создается в PowerShell и выглядит он следующим образом:
Где:
F:\backup\ - путь, в какой папке мы будем с вами искать файлы для удаления *.* - имя (маска) файлов /d -30 - старше скольки дней нам необходимо удалить файлы.
Вот так это выглядит в PowerShell:
Осталось только его выполнить и все.
Все хорошо, у нас есть скрипт. Мы можем выполнять его вручную, когда необходимо очистить наши бекапы. Но зачем выполнять это вручную? Мы поручим планировщику запускать наш скрипт и избавимся сами от рутинной работы.
Итак, что нам для этого надо?
Для начала идем в "Пуск -> панель управления -> Администрирование" и запускаем там "Планировщик заданий".
Выбираем пункт "Создать задачу":
На вкладке "Общие" задаем имя задания, его описание и пользователя, от которого оно будет выполняться. По умолчанию там будет пользователь, под которым вы вошли в данный момент в систему.
Далее переходим на вкладку "Триггеры" и создаем расписание, когда мы будем запускать наше задания. У меня настроено в 10:00 каждые 2 дня.
Далее идем на вкладку "Действия" и задаем действие, которое будет выполняться. Выбираем "Запуск программы"
программу или сценарий
и указываем путь до PowerShell:
А аргументе указываем путь до нашего скрипта, который мы создали ранее:
Нажимаем "Ок" и еще раз "Ок"
Все, на этом наше задание создано. Осталось дождаться, когда будет выполнено наше действие по расписанию и проверить, все ли правильно было настроено.
Когда мы начинаем работать с новым чистым компьютером, то есть с Windows 10 только что установлен, данные хранятся здесь минимально. Но с течением месяцев и лет использования все радикально меняется в этом отношении. Понемногу диски заполняются собственными файлами и приложениями, которые мы устанавливаем и используем.
Со временем это может стать серьезным неудобством, особенно если учесть, что ограниченное пространство , как вы знаете. Поэтому, безусловно, придет время, когда мы будем вынуждены начать освобождать дисковое пространство, что почти никогда не приятно. Затем нам придется удалить приложения и игры с компьютера, чтобы продолжить работу с ним.
Но да, в то же время мы должны помнить, что очень вероятно, что у нас есть очень старые файлы, хранящиеся на компьютера жесткий диск. Это те, которые устаревают, когда мы создаем новые или модифицируем уже существующие. Мы должны помнить о том, что накопление одной и той же используемой системы долгое время невозможно, поэтому накопление бесполезных файлов практически неизбежно. Поэтому, как легко представить, они представляют собой совершенно бесполезное занятое пространство, которое мы могли бы использовать для более полезных вещей.
Это правда, что наиболее подходящим является удаление всех файлов, которые устаревают, если мы знаем об их существовании. Но также верно и то, что для некоторых вещей мы храним все, думая, что они вряд ли займут место. Поначалу это может быть правдой, но когда мы накопили несколько лет использования одного и того же Windows Ситуация может стать серьезной. Но у этого есть решение, как мы покажем вам ниже.
Мы говорим вам об этом, потому что есть некоторые приложения, которые могут помочь нам выполнить это обслуживание без каких-либо усилий и, таким образом, освободить диск пространство , В частности, они несут ответственность за удаление тех, файлы или папки которые были на нашем компьютере в течение длительного времени и не используются вообще.
Приложения для автоматического удаления файлов и папок
Удалить старые файлы
Прежде всего мы поговорим о простом приложении, которое фокусируется на этих задачах автоматического удаления в Windows. Для начала скажем, что вы можете скачать его с эту ссылку и мы найдем простой пользовательский интерфейс, но несколько устаревший. Конечно, программа отвечает за чистка старых папок и файлы ежедневно или ежемесячно.
Это то, что выполняется на основе создания, изменения или последней даты доступа к этим элементам. Таким образом, мы можем настроить, чтобы все файлы, возраст которых превышает определенное количество дней, легко удалялись. Нам нужно только указать папку или диск, который мы хотим проанализировать.
Cyber D's Autodelete
В этом случае мы находим другое приложение, у которого между нами уже много лет и которое вы можете скачать с эту ссылку , Как и в предыдущем случае, он имеет пользовательский интерфейс, который долгое время не обновлялся, что проявляется в его внешнем виде. В общем, он делает свою работу, которая заключается в удалении старого файлов и папки с наших дисков Windows.
Таким образом, программа позволяет нам определить серию фильтров, чтобы указать файлы, которые вы можете удалить из папок, которые мы указываем. Это процесс, который будет выполняться периодически и в то же время позволяет нам определять другие параметры. Среди них мы находим, что мы можем выбрать определенный тип формата, чтобы они не удаленный , Например.
Очистка подкаталога
И мы собираемся продолжить с другой программой, подобной тем, которые обсуждались выше, и в равной степени бесплатной. Это приложение, которое мы можем скачать с эту ссылку и это поможет нам, когда дело доходит до освобождения места в Windows. Скажем, что это предложение предоставляет в наше распоряжение простой пользовательский интерфейс, который позволяет нам использовать программа удалить старый контент.
Таким образом, нам нужно только установить ряд параметров для запуска программы. Здесь мы указываем время, так как оно не было затронуто, маршрут, размер и т. Д. Конечно, в отличие от альтернатив, обсужденных выше, здесь мы можем использовать командную строку Windows для этих же задач удаления.
Удалить файлы старше чем
Одна из первых вещей, которая поражает нас в отношении этого конкретного предложения, заключается в том, что оно предлагает нам несколько более современного пользователя интерфейс , Для начала мы скажем вам, что вы можете получить программу от эту ссылку установить его в Windows. Его использование очень просто и доступно, когда речь идет об утилизации неиспользуемых файлов, которые имеют более определенной даты. Таким образом, нам нужно только указать, чтобы удалить файлы старше, чем файлы, которые будут автоматически удалены по типу или размеру даты.
Кроме того, стоит также отметить, что, в отличие от предыдущих случаев, с помощью этого программного обеспечения мы можем установить пароль, защитить его нецелевое использование. В то же время мы можем сделать программу Начало автоматически с самой системой Windows.
Delage32
В этом случае мы будем говорить о другом предложении этого типа, то есть о программе, которая будет использоваться для удаления файлов определенного возраста в Windows. Это позволит освободить место в системе и использоваться для других целей. Конечно, мы должны иметь в виду, что эта программа работает несколько иначе, чем остальные.
Мы говорим это потому, что приложение как таковое не имеет интерфейс пользователя как те, которые проанализированы до сих пор. Напротив, Delage32 работает из командной строки системы, приложение, которое, кстати, можно скачать с эту ссылку .
Удалить старые файлы прямо из Windows
Со всем и с этим, Microsoft«s собственная операционная система дает нам возможность автоматизировать это удаление без дополнительных программ. Для этого мы будем использовать, из PowerShell открыть как администратор, определенную команду. Когда мы находимся в окне, соответствующем PowerShell как администратор, мы вводим следующую команду: ForFiles / p «C: Usuarionname_of_user_folder» / s / d –90 / c «cmd / c of @file».
На данный момент мы должны помнить, что здесь у нас есть возможность, конечно, указать желаемый путь к диску, а также дни древности вместо 90.
Читайте также: