Очистка папки windows temp по расписанию

Как вы удаляете временные файлы? Вручную запускаете CCleaner или аналогичную программу, либо настроили ее запуск по расписанию? Я обхожусь встроенными средствами Windows, причем все сводится буквально к одной команде. Я хочу поделиться с вами двумя скриптами, которые давно служат мне верой и правдой для удаления ненужных файлов.

В Windows есть утилита для очистки диска, которую можно настроить для удаления заданных категорий файлов по расписанию. Она легко справится с очисткой временных файлов из расположений, известных системе, но не позволит удалять ненужные файлы из заданной вами папки. С помощью скриптов можно очищать не только временные файлы, но и любую папку. Например, я удаляю файлы из папок Test и Temp, которые служат для экспериментов и временного хранения файлов как в загрузках, так и документах.

В отличие от программных чистильщиков, скрипты можно гибко настроить, а регулярность выполнения очистки легко реализовать с помощью планировщика заданий Windows.

Эти скрипты позволяют удалять только файлы заданного «возраста» вместо полной очистки папки.

В статье вы найдете примеры скриптов и рассказ о том, как настроить задачу в планировщике одной командой. Вы также сможете скачать готовые файлы и создать задание для очистки папок за пару минут.

Скрипты

Вы можете воспользоваться на выбор скриптами CMD, VBS и PowerShell.

CMD

Можно использовать утилиту командной строки forfiles.exe, входящую в состав Windows 7 и новее (когда-то она входила в Windows 2000 Resource Kit). Одной командой удаляются все файлы из указанной папки и вложенных в нее.

Команда для выполнения

forfiles.exe /p %temp% /s /m *.* /d -14 /c "cmd /c del /q /f @file" 
  • Вместо %temp% (временной папки в профиле) подставьте свою папку (параметр /p)
  • Возраст файлов по умолчанию 14 дней (параметр /d), но вы можете задать любое значение
  • Можно удалять файлы определенного расширения по маске (например, /m *.log)
  • За рекурсивное удаление (во вложенных папках) отвечает параметр /s

Конечно, в скрипте вы можете использовать несколько команд, каждая из которых будет удалять заданную папку. Справка по использованию утилиты вызывается командой forfiles /?.

VBS

Приведенный ниже скрипт VBS удаляет все файлы и папки, включая защищенные, с выводом списка удаленных файлов.

On Error Resume Next
intDays = Int(Wscript.arguments.Item(0))
strFldr = Wscript.arguments.Item(1)

Set objFSO = CreateObject("Scripting.FileSystemObject")
DelOld strFldr, intDays

Function DelOld(sFldr, iDays)
On Error Resume Next
   Dim oD, cF, cD, oI

   Set oD = objFSO.GetFolder(sFldr)
   Set cF = oD.Files
   Set cD = oD.SubFolders

   For Each oI In cF
      If DateDiff("d", oI.DateLastModified, Now) > iDays Then
         WScript.Echo oI.Path
         oI.Attributes = 0
         oI.Delete
      End If
   Next

   For Each oI In cD
      DelOld oI.Path, iDays
      If oI.Size = 0 Then
         oI.Attributes = 0
         oI.Delete
      End If
   Next
End Function
  • Файлы удаляются по дате изменения. Чтобы удалять по дате создания, замените .DateLastModified на .DateCreated
  • Если не хотите удалять защищенные файлы, закомментируйте строку
    ‘ oI.Attributes = 0

Команда для выполнения

Скрипт можно запускать из командного файла (CMD).

cscript //Nologo MyCleanUp.VBS 14 %windir%\temp >MyCleanupScript.Log
  • Вместо %windir%\temp подставьте свою папку (в этом примере удаляются файлы из временной папки в системном каталоге)
  • Возраст файлов по умолчанию 14 дней, но вы можете задать любое значение
  • Список удаленных файлов будет по умолчанию сохранен в файле %windir%\system32\MyCleanupScript.Log, хотя можно указать любой путь и имя файла

Как и в случае с утилитой forefiles.exe, можно реализовать очистку различных папок, указав каждую в отдельной команде.

PowerShell

Скрипт на PowerShell был в блоге Сергея Мариничева в рамках урока об операциях с файлами, но теперь страница доступна только в архиве интернета. Я скопировал ключевое содержимое для вас:

#из заданной папки удалять все файлы и папки старше 14 дней
$Path = "C:\temp"
$Days = "-14"
$CurrentDate = Get-Date
$OldDate = $CurrentDate.AddDays($Days)
Get-ChildItem $Path -Recurse | Where-Object { $_.LastWriteTime -lt $OldDate } | Remove-Item

Запуск скрипта:

powershell.exe -ExecutionPolicy Bypass -noprofile -file Script.ps1

Выполнение очистки по расписанию

Для выполнения очистки папки по расписанию нужно создать скрипт с именем cleanup.cmd, содержащий команду для запуска, и скопировать его в любую папку из PATH (например, %windir%\system32). Поместите туда же скрипт VBS или PowerShell, если вы решили использовать его, а не утилиту forfiles.ехе.

Задание в планировщике создается одной командой:

Schtasks.exe /Create /RL Highest /TN CleanUP /SC Weekly  /D SUN /ST 14:00 /TR "%WINDIR%\system32\cleanup.cmd"

Задание с именем CleanUp будет выполняться:

  • с наивысшими правами (параметр /RL)
  • раз в неделю (параметр /SC)
  • по воскресеньям (параметр /D)
  • в 14:00 (параметр /ST)

Откройте Пуск – Поиск – Планировщик заданий и вы увидите в библиотеке планировщика задание CleanUp.

*

Увеличить рисунок

Можете проверить работу задания в планировщике. Для этого щелкните правой кнопкой мыши по заданию и выберите Выполнить.

Готовые файлы

Загрузите архив и распакуйте в любую папку. В архиве варианты forfiles и VBS.

  1. Задайте путь к папке и возраст файлов в скрипте CleanUp.cmd в одной из папок (каждая соответствует одному из описанных выше способов), после чего скопируйте все содержимое папки в  %windir%\system32.
  2. Щелкните правой кнопкой мыши на файле schedule.cmd и выберите Запуск от имени администратора, чтобы создать задание.

Благодарности

Авторами скриптов, которые я когда-то почерпнул из этой темы конференции OSZone, являются Keeper2006 и amel27 соответственно. В этой же теме вы найдете другие интересные варианты решения данной задачи, и туда же следует направлять вопросы по доработке скриптов под свои нужды.


А как вы избавляетесь от ненужных файлов – программой или скриптом? Настроена ли у вас очистка по расписанию?

Для полуавтоматической (придётся самому запускать файл) очистки папки TEMP нашёл такой способ:

1. Открываем «Переменные среды»

5e94916a8bdee589276287.png

2. Меняем переменные TEMP и TMP на – C:/Windows/Temp

3. Открываем любой текстовый редактор и вставляем данный код:

pushd %TEMP% && rd /s /q . > nul 2>&1
pushd %WinDir%\TEMP && rd /s /q . > nul 2>&1

Сохраняем файл в корне диска С, под любым именем, но с расширением .cmd, например: Сценарий очистки TEMP.cmd

4. Запустить файл, чтобы исполнить сценарий очистки папки TEMP (папка очистится от временных файлов).

Для автоматической очистки папки TEMP при входе в систему, нашёл такой способ:

1. Открываем «Переменные среды»

5e94916a8bdee589276287.png

2. Меняем переменные TEMP и TMP на – C:/Windows/Temp
— и нажимаем «ОК» в окне «Переменные среды».

3. Открываем любой текстовый редактор и вставляем данный код:

pushd %TEMP% && rd /s /q . > nul 2>&1
pushd %WinDir%\TEMP && rd /s /q . > nul 2>&1

Сохраняем файл в корне диска С, под любым именем, но с расширением .cmd, например: Сценарий очистки TEMP.cmd

4. Запускаем редактор групповых политик: Пуск Выполнить → вводим команду gpedit.msc

5. «Конфигурация компьютера» → «Конфигурация Windows» → «Сценарии» → «Автозагрузка» —

5e949871b3267040520305.png

— «Добавить» → «Обзор» → «Сценарий очистки TEMP.cmd» (ищите там, где вы его разместили) → «ОК» → «ОК»

5e949da7c9f63623514377.png

6. Проделайте подобные шаги и для конфигурации пользователя: «Конфигурация пользователя» → «Конфигурация Windows» → «Сценарии» → «Вход в систему»

5e94a20b3a035152446286.png

7. При входе в систему будет происходить очистка папки TEMP.

By Thomas Underwood 🕚 Updated on January 3, 2024 at 11:00 am

Some programs leave behind temporary files even after their purpose has expired. Over time temporary files can accumulate to significant numbers taking up a lot of space. One way to deal with the issue is to delete temp files automatically.

Get the Demo Task…

Overview

This tutorial shows how to set up a Task in Automation Workshop which will automatically delete temp files on daily basis.

How to delete temp files automatically? Creating a Task that will automatically delete temp files on regular basis is easy to accomplish in just a few simple steps. Namely, we will need to create a Task using Task Wizard, then add a Trigger which will execute the Task once per day, and add an Action that will delete files in the temp folder.

In fact, since there exist two temporary files folders (both User and System temp files), we will need to use the Delete Files Action twice to automatically delete temp files from both locations.

Create a Task

How to create a new Task in Automation Workshop? Open Automation Workshop Manager and choose New Task from the File menu. Alternatively, there is New Task button on the toolbar or a keyboard shortcut CTRL+N can be used. This will open the Task Wizard at Welcome tab. Proceed to the next tab to add the Task Scheduler Trigger (which will automatically start the Task on daily basis).

Configure Scheduler

How to add and configure the Task Scheduler trigger? Once in the Triggers tab of Task Wizard, click the Add button to open Add Trigger window with the list of available Triggers. To delete temp files automatically on regular basis we need the Task Scheduler trigger which can start Tasks on various schedules.

Add Trigger: Task Scheduler

Add a Task Scheduler

Task Scheduler can automatically launch Tasks with various periodicity, on specific months, dates, weekdays (including or excluding specific dates, weekdays and times of the day) or even more complex schedules. However, for the purposes of deleting temp files it will suffice to run the Task once per day. Choose the daily schedule and set the time of Task execution (e.g., 8:00 PM).

Task Scheduler: daily 8:00 PM

Schedule daily 8:00 PM

Click OK to add the Task Scheduler to the list of Task’s Triggers. Click Next to proceed to the Actions tab to add the Delete File Action which will delete temp files automatically whenever executed.

Delete TEMP files

How to add and configure the Delete Files Action to automatically delete temp files? Once in the Actions tab of Task Wizard, click the Add button to open Add Action window with the list of all available Actions. Find and open the Delete File Action in the File & Folder category.

Add Action: Delete File

Add a Delete File

The File tab of the Delete File Action properties requires to specify which files to delete. While the Windows TEMP folder location is user-independent and can be retrieved from Variable Wizard, the user application temp folder location depends on the currently logged in user and has to be specified using a couple of simple tricks since the goal is to delete temp files automatically.

First, let us configure first Delete Files Action which will automatically delete temp files from Windows TEMP folder. Click on Variable Wizard button next to the File input to open Variable Wizard. Choose the Temp folder option available from the Folders subcategory in the System category and click OK.

Variable Wizard: System—Folder—Temp folder

Get system TEMP folder

See that the File input now contains the Temp folder variable that universally refers to Windows TEMP folder (by default, C:\Windows\TEMP\ folder, but also can be located in another path).

However, specifying Windows TEMP folder is not enough. To automatically delete temp files, these files themselves have to specified. Since the path of Windows TEMP folder returned by the Temp folder variable already includes the backslash character at the end, it is necessary to only add *.* so that the File input contains the following: Temp folder\*.*

Delete file: [Temp folder\]*.*

Delete all files in TEMP folder

When the File parameter is specified, go to the Options tab and mark the Include subfolders checkbox to automatically delete temp files that are located within subfolders of the Temp folder. Also, it might be a good idea to go to the Exclude tab and enable the option Do not delete files that are modified in last 24 hours to avoid deleting temp files that probably are currently in use.

Delete File filter: Do not delete files that are modified in last 24 hours

The configuration of the first Delete File Action is finished. Click OK to save the Delete File Action.

Delete AppData Temp files

Now, let us add the second Delete File Action that will automatically delete temp files from User Application Data TEMP folder (by default, C:\Users\username\AppData\Temp\ where username is the name of particular user).

Repeat the procedure by clicking the Add button in the Actions tab of Task Wizard and choose the Delete File Action from File & Folder category again. Once in the File tab, enter the following into the File input: C:\Users\username\AppData\Temp\*.*

Highlight username, click Variable Wizard button and replace fixed username value with dynamic Current user name value (located in Service subcategory of Internal category in Variable Wizard). Upon execution, the Task will now automatically delete temp files from the User application TEMP folder belonging to the user that is currently logged into the system (not just one particular user).

Delete file: C:\Users\[User name]\AppData\Temp\*.*

Delete all files in AppData Temp folder

Once more, let us mark the Include subfolder checkbox in the Options tab and specify to automatically delete temp files that are not modified in last 24 hours in the Exclude tab. Click OK and see that the Task now contains two Delete File Actions, each to delete different temp file folders.

Congratulations!

You have just set up the Task that automatically deletes temp files from both Windows and User application TEMP folders on a daily basis. The only remaining thing to do is to specify Run As settings, configure automatic email reports and name the Task.

Click Finish and the Task is activated. Now the Task Scheduler will launch the Task daily at 8:00 PM and the contents of TEMP folders older than 24 hours will be automatically deleted, freeing up disk space.

Automate now!

Seamless automation. Take a quick 90-second journey!

Ask for more…

If you have any questions, please do not hesitate to contact our support team.

Для очистки папок на необходимо написать не большой скрипт, для этого открываем любой текстовый редактор, и копируем туда следующие строки:

pushd %TEMP% && rd /s /q . > nul 2>&1
pushd %WinDir%TEMP && rd /s /q . > nul 2>&1
pushd %WinDir%Prefetch && rd /s /q . > nul 2>&1
pushd %TMP% && rd /s /q . > nul 2>&1

Далее сохраняем файл с расширением .cmd в любое место на диски.
Теперь нам необходимо автоматизировать работу нашего скрипта, делать это мы будем с помощью групповых политик Windows, для этого нажимаем сочетание клавишь Windows + R или (Пуск — Выполнить) появиться окошко «Выполнить», в строке набираем команду ( gpedit.msc ) и нажимаем Enter.

Откроется «Редактор локальной групповой политики» В левой колонке выбираем: Конфигурация компьютера — Конфигурация Windows — Сценарии (запуск/завершение) — Завершение работы. Жмем кнопку Добавить — Обзор и указываем путь к сохраненному ранее скрипту. Жмем ОК, Применить, ОК.

В «Редактор локальной групповой политики» тоже самое необходимо проделать Конфигурация пользователя — Конфигурация Windows — Сценарии (вход/выход из системы) — Вход в систему — Добавить — Обзор и указываем путь к сохраненному ранее скрипту. Жмем ОК, Применить, ОК.

Закрываем «Редактор локальной групповой политики»
Теперь нам необходимо обновить политики что бы они вступили в силу с помощью следующей команды ( gpupdate /force /logoff ), для этого нажимаем сочетание клавишь Windows + R или (Пуск — Выполнить) появиться окошко «Выполнить», в строке набираем команду и нажимаем Enter.

На этом автоматизация очистки временных файлов завершена теперь при каждом завершении временные файлы автоматически будут удаляться. 🙂

взято было отсюда: http://admin-news.ru/avtomaticheskaya-ochistka-temp-tmp-prefetch-papok-v-windows.html, но сайт крякнул 🙂

Отблагдарить автора статьи также можно переводом, +100 вам в карму!

 групповые политики скрипт

Часто мы сталкиваемся с проблемой, когда необходимо удалять какие-то файлы с папками автоматически, по мере их устаревания.
Например, ведется запись с камер видеонаблюдения, все складывается на NAS-сервер и необходимо периодически удалять файлы, чтобы не закончилось место на жестком диске.
Второй случай использования: удаление бэкапов. Как правило они занимают достаточно много места и надо следить за тем, чтобы они были вовремя удалены.

Мы решим эту задачу удаления старых файлов с помощью cmd (bat-файла). Рассмотрим одну из возможных реализаций как это можно сделать.

Вводная

Пусть папка, которую нам необходимо периодически очищать находится в каталоге D:\ftp\CAMERA

Что нужно сделать

1. Создадим файл clear.cmd, рядом с папкой которую нам необходимо удалить (не внутри, а рядом) в каталог D:\ftp
2. В файле clear.cmd добавим следующий текст:

@echo off
SET Path2Del=D:\ftp\CAMERA
forfiles -p "%Path2Del%" -s -m *.* -d -15 -c "cmd /c del /q @path"
for /f %%D in ('DIR cd "%Path2Del%" /AD/B/S ^| sort /r') do RD "%%D"

3. Там где Path2Del замените на свой путь, параметр -d -15 означает, что необходимо удалить файлы старше 15 дней. Если хотите увеличить или уменьшить этот срок замените 15 на нужное число.
4. Откройте меню Пуск > Служебные Windows > Средства администрирование Windows > Планировщик заданий

Администрирование

5. Создадим в планировщике заданий новое задание:

Планировщик вкладка 1

Планировщик вкладка 2

Планировщик вкладка 3

6. После этого каждый день, в 20:00 будет произведено удаление файлов старше 15 дней.

PS: Если вы ИТ-специалист, возможно вам пригодиться вот это: программа для ИТ-шников

Основатель и директор по развитию Софтонит. Практикующий руководитель разработки. Эксперт в области автоматизации техподдержки

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Дублирование экрана iphone на компьютер windows 10
  • Dll kernel32 dll как исправить ошибку windows 7 64 bit
  • Как сделать айпад вторым монитором для пк windows 10
  • Как запустить singularity на windows 10
  • Ia writer аналог для windows