Очистка временных файлов windows 7 bat

bat-файл для очистки временных файлов и ПАПОК

Выражаю свою большую благодарность ival за помощь и корректировку направления моих мыслей :)

Ранее, в процессе решения данного вопроса, на просторах сети наткнулся на очень любопытную статью:
«Автоматическое удаление старых файлов [скрипт PowerShell]»
https://www.mytechnote.ru/article/avtomaticheskoe-udalenie-staryh-faylov-skript-powershell

Там автор еще более изящно чистит файлы и папки, учитывая их возраст (дату создания).

Может кому-то в будущем будет в самый раз, например, для чистки определённых папок на терминальном сервере.

С позволения уважаемой администрации форума приведу содержимое всего PS-скрипта и пояснения автора тут (вдруг исчезнет та статься) с уже внесенной моей поправкой на пути к папкам, которые будем чистить — «C:WindowsTemp» и «C:Usersимя_текущего_пользователяAppdataLocalTemp» (в скрипте это выглядит как «$env:temp»)

В этом блоке указываем количество дней (в данном случае это — 7 дней), файлы старше которых должны быть удалены, задаем путь до очищаемой папки/папок (пути к нужным папкам пишутся в кавычках и разделяются между собой запятой + пробел) и желаемые расширения файлов.
Если вам нужно удалять определенные типы файлов, например можно задать «*.js» — тогда будут удалены все старые JavaScript файлы.

$Days = "7"
$TargetFolder = "C:WindowsTemp", "$env:temp"
$Extension = "*"

В следующем участке мы находим все файлы, которые подходят под наши критерии. А также сортируем список, что бы всё шло от большего пути к меньшему. Это нужно, если у вас будут вложенные папки, что бы скрипт всегда сперва удалял файлы, а потом уже пытался удалить папку, где расположены эти папки.

$LastWrite = $Now.AddDays(-$Days)
$Files = Get-Childitem $TargetFolder -Include $Extension -Recurse | Where{$_.CreationTime -le "$LastWrite" -and $_.LastWriteTime -le "$LastWrite"} | Sort-Object -Descending {$_.FullName.Split('').Count},FullName

Собственно, удаляем файл.

foreach ($File in $Files)
{
 if ($File -ne $NULL -and !$File.PSIsContainer)
 {
  write-host "Deleting File $File" -ForegroundColor "Magenta"
  Remove-Item $File.FullName -Force | out-null
 }

Тут мы удаляем папку, но перед ее удалением, проверяем, что бы она была пустая.

elseif ($File -ne $NULL -and $File.PSIsContainer)
 {
                               $FolderInfo = get-Childitem $File.FullName | Measure-Object
                               if ($folderInfo.count -eq 0)
                               {
                                               write-host "Deleting directory - $File" -foregroundcolor "green"
                                               Remove-Item $File.FullName -Force | out-null
                               }
 }

По сути, это повторение уже проделанной операции. Но тут мы проходимся по всем папкам, ищем пустые папки и удаляем их.

$folderInfo=""
 $Folders = Get-Childitem $TargetFolder -Recurse | Where{$_.PSIsContainer} | Sort-Object -Descending {$_.FullName.Split('').Count},FullName
 foreach ($Folder in $Folders)
 {
                if ($Folder -ne $null)
                {
                               $FolderInfo = get-Childitem $Folder.FullName | Measure-Object
                               if ($folderInfo.count -eq 0)
                               {
                                               write-host "Deleting directory - $Folder" -foregroundcolor "yellow"
                                               Remove-Item $Folder.FullName -force | out-null
                               }
                }
 }

Работоспособность указанного скрипта проверено лично мной. Со своей задачей он справляется без проблем.

Также в архиве «delete-old-files.zip», прикрепленном к этому сообщению, находится уже модифицированный PS-скрипт для чистки указанных выше папок:
«C:WindowsTemp» и «C:Usersимя_текущего_пользователяAppdataLocalTemp».

Если кому-то нужно чистить другие папки — просто замените пути на свои в «$TargetFolder =».

Maks

Модератор

Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows

6871 / 3818 / 477

Регистрация: 13.03.2013

Сообщений: 14,059

Записей в блоге: 9

1

Очистка системы от временных файлов

06.03.2015, 13:23. Показов 37236. Ответов 30

Метки нет (Все метки)


Чистка КЭШа (временных файлов) в системе, включая вложенные каталоги.
Обычно я закидываю эти батники в автозагрузку, чтобы оптимизировать работу системы.

Windows XP

Bash
1
2
3
4
5
6
7
:start
DEL /F /S /Q /A "C:WindowsTemp*"
DEL /F /S /Q /A "C:Temp*"
DEL /F /S /Q /A "%USERPROFILE%Local SettingsTemp*"
 
cd %USERPROFILE%Local SettingsTemp
rmdir /s /q %USERPROFILE%Local SettingsTemp

Windows 7/8

Bash
1
2
3
4
5
6
7
:start
DEL /F /S /Q /A "C:WindowsTemp*"
DEL /F /S /Q /A "C:Temp*"
DEL /F /S /Q /A "%USERPROFILE%AppDataLocalTemp*"
 
cd %USERPROFILE%AppDataLocalTemp\AppDataLocalTemp
rmdir /s /q %USERPROFILE%AppDataLocalTemp

Дополнительно:

Запустить процесс

Bash
1
2
3
4
5
6
7
8
9
10
start outlook.exe
exit /b
 
::ИМЕНА НЕКОТОРЫХ ПРОЦЕССОВ
 
::outlook.exe (MS Outlook);
::notepad.exe (Блокнот);
::chrome.exe (браузер Гугл Хром);
::winword.exe (Ворд);
::excel.exe (Ексель);

Остановить процесс

Bash
1
2
3
4
5
6
7
8
9
taskkill /F /IM "имя процесса"(без кавычек) /T
 
::ИМЕНА НЕКОТОРЫХ ПРОЦЕССОВ
 
::outlook.exe (MS Outlook);
::notepad.exe (Блокнот);
::chrome.exe (браузер Гугл Хром);
::winword.exe (Ворд);
::excel.exe (Ексель);

К чему я выложил дополнительные батники:
Дело в том, что иногда, особенно на серверах, по объективным причинам забивается системный КЭШ, который следует иногда чистить.
Так вот, чтобы почистить КЭШ, необходимо убить, а после очистки запустить необходимые процессы.



1



Smitis

1744 / 349 / 41

Регистрация: 15.10.2012

Сообщений: 547

06.03.2015, 17:40

2

Цитата
Сообщение от Maks
Посмотреть сообщение

Чистка КЭШа (временных файлов) в системе, включая вложенные каталоги.

Лучше использовать cd с ключом /d, а иначе текущая папка может быть совсем не та, что подразумевалась.
И почему не использовать %TEMP%?
Вот батник для чистки временной папки (с некоторыми «пароноидальными» проверками)

Bash
1
2
3
4
5
@echo off
if not defined temp exit/b
cd /d "%temp%" || exit/b
if /i not "%temp%" == "%cd%" exit/b
rd /s /q "%temp%" >nul 2>&1

Для чистки системной временной папки лучше тоже использовать переменные, а ещё лучше брать значение из реестра

Bash
1
for /f "tokens=1,2,3*" %%i in ('reg query "HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment" /v TEMP') do set "systemp=%%k"



3



Особый статус

Эксперт WindowsВирусоборец

8425 / 1704 / 87

Регистрация: 15.04.2011

Сообщений: 5,515

08.03.2015, 17:22

3

Опасные скрипты ребята.
Изначально необходимо убедиться что темп находится в своем обычном месте,а потом его зачищать.



1



1744 / 349 / 41

Регистрация: 15.10.2012

Сообщений: 547

09.03.2015, 17:00

4

Цитата
Сообщение от Koza Nozdri
Посмотреть сообщение

Изначально необходимо убедиться что темп находится в своем обычном месте,а потом его зачищать.

Обычное место это «%userprofile%Local SettingsTemp»?
И что плохого в переносе temp на «необычное» место?



0



Особый статус

Эксперт WindowsВирусоборец

8425 / 1704 / 87

Регистрация: 15.04.2011

Сообщений: 5,515

09.03.2015, 17:28

5

Цитата
Сообщение от Smitis
Посмотреть сообщение

И что плохого в переносе temp на «необычное» место?

А если мастера оптимизации перенесли ее в корень С: ?



0



1744 / 349 / 41

Регистрация: 15.10.2012

Сообщений: 547

09.03.2015, 18:00

6

Увы! Единственная действенная защита от дурака — это не подпускать его к компьютеру.
С другой стороны, народная техническая мудрость — опыт пропорционален квадрату загубленного оборудования. Переустановит чел несколько раз угробленую винду и глядишь задумается, что он не так делает.



1



Особый статус

Эксперт WindowsВирусоборец

8425 / 1704 / 87

Регистрация: 15.04.2011

Сообщений: 5,515

09.03.2015, 18:16

7

Smitis, ну тогда нужно в ваш скрипт дописать мессендж:
«Уважаемый пользователь,если вы дурак,то пожалуйста — не используйте данный скрипт.Спасибо.»

Наверняка обвинят то вас и ваш скрипт если после чистки «ненужных файлов» система не запустится)))
Доработаете?



0



1744 / 349 / 41

Регистрация: 15.10.2012

Сообщений: 547

09.03.2015, 20:26

8

Лучше уж дисклеймер на пару страниц с грозными предупрежденими, о снятии с себя какой-либо ответственности и пр.
Обещаю в течении ближайших пяти-шести лет, если не забуду, проконсультироваться у своего юриста и оформить должным образом



0



Эксперт WindowsАвтор FAQ

17954 / 7591 / 889

Регистрация: 25.12.2011

Сообщений: 11,323

Записей в блоге: 17

10.03.2015, 14:38

9

Smitis, не забыть при запуске батника двухфакторную авторизацию по SMS.



0



buggydancer

10.03.2015, 15:28

Не по теме:

Цитата
Сообщение от Smitis
Посмотреть сообщение

…народная техническая мудрость — опыт пропорционален квадрату загубленного оборудования…

в конце 90-х читал оригинальный вариант этого афоризма в сборнике «Законов Мерфи», там он выглядел так:

Постулат Хорнера:
Опыт растет прямо пропорционально выведенному из строя оборудованию.

http://murphy-law.net.ru/machine.html
но все-же представляется, что даже квадратичная оценка иногда черезмерно оптимистична :D



0



Модератор

Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows

6871 / 3818 / 477

Регистрация: 13.03.2013

Сообщений: 14,059

Записей в блоге: 9

11.03.2015, 08:37

 [ТС]

11

По идее, при установке какого-либо софта, драйверов и т.п. они по умолчанию распаковываются в директорию «C:Temp» и, разумеется, после окончания установки там и остаются.

Выложенные мною батники исправно работают на десятках доменных машин и сотнях пользовательских ПК, которые я ремонтирую вне работы (в рамках шабашки).



0



1744 / 349 / 41

Регистрация: 15.10.2012

Сообщений: 547

11.03.2015, 11:28

12

Цитата
Сообщение от Maks
Посмотреть сообщение

По идее, при установке какого-либо софта, драйверов и т.п. они по умолчанию распаковываются в директорию «C:Temp»

Это если переменые temp и tmp туда переопределены. А если нет?

А ещё некоторые особые извращенцы типа офисов и сервиспаков создают свои папки со случайными именами прямо в корне дисков. Некоторые обновления создают папку C:Config.Msi. Недавно встретилась папка C:WindowsTempRASETUP. В общем, каждый извращается в меру своей фантазии



0



Модератор

Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows

6871 / 3818 / 477

Регистрация: 13.03.2013

Сообщений: 14,059

Записей в блоге: 9

11.03.2015, 11:50

 [ТС]

13

Цитата
Сообщение от Smitis
Посмотреть сообщение

Это если переменые temp и tmp туда переопределены.

И что?
Все равно их почистить не помешает, где бы они не лежали.

Цитата
Сообщение от Smitis
Посмотреть сообщение

А если нет?

Это ничего не меняет.



0



1744 / 349 / 41

Регистрация: 15.10.2012

Сообщений: 547

11.03.2015, 12:04

14

Цитата
Сообщение от Maks
Посмотреть сообщение

Это ничего не меняет.

В корне всё меняет! C:Temp это просто папка, несмотря на название может содержать что угодно. Хорошо, когда знаешь свой компьютер и что там, а на чужом можно такого понаудалять… А вот переменная temp уже указывает именно на временную папку.
К чему это — в скрипте лучше использовать системные переменные или значения из реестра, а не гадать, что где находится.



0



Модератор

Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows

6871 / 3818 / 477

Регистрация: 13.03.2013

Сообщений: 14,059

Записей в блоге: 9

11.03.2015, 12:15

 [ТС]

15

Цитата
Сообщение от Smitis
Посмотреть сообщение

а на чужом можно такого понаудалять

Переменные в принципе менять нежелательно и даже при их подмене все равно некоторые программы складывают свои файлы в темпы пользователей.
Если юзер дружит со своей головой, то он не станет менять значения переменных.
То же самое касается использования «говносборок».



0



1744 / 349 / 41

Регистрация: 15.10.2012

Сообщений: 547

11.03.2015, 13:11

16

В общем я согласен, но вот под Win2000 и WinXP переменные temp и tmp менять приходилось всегда, так как в те далёкие времена слишком часто попадались программы, которые то пробелы в именах файлов не понимали, то русские буквы. Сейчас, слава богу, проблема сошла на нет.



0



Модератор

Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows

6871 / 3818 / 477

Регистрация: 13.03.2013

Сообщений: 14,059

Записей в блоге: 9

11.03.2015, 14:20

 [ТС]

17

Цитата
Сообщение от Smitis
Посмотреть сообщение

Сейчас, слава богу, проблема сошла на нет.

Ровно после выпуска SP3.



0



Особый статус

Эксперт WindowsВирусоборец

8425 / 1704 / 87

Регистрация: 15.04.2011

Сообщений: 5,515

11.03.2015, 16:27

18

Цитата
Сообщение от Smitis
Посмотреть сообщение

а не гадать, что где находится.

Зачем гадать?
Достаточно проверить находится ли темп по стандартному пути.
Если нет — предупредить юзера о возможных последствиях,этого и будет достаточно.



4



Maks

Модератор

Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows

6871 / 3818 / 477

Регистрация: 13.03.2013

Сообщений: 14,059

Записей в блоге: 9

12.03.2015, 07:06

 [ТС]

19

В виду вышесказанного подкорректировал скрипт, сменив статичные директории на переменные.

Bash
1
2
3
4
5
6
7
:start
DEL /F /S /Q /A %Temp%*
DEL /F /S /Q /A %SystemRoot%TEMP*
DEL /F /S /Q /A C:Temp*
 
cd %Temp%
rmdir /s /q %Temp%

Работоспособность даного батника проверена на операционках ХР, 7 и 8.



0



sov44

1778 / 760 / 130

Регистрация: 09.04.2011

Сообщений: 1,325

12.03.2015, 10:29

20

С использованием штатного чистильщика для TEMP

Bash
1
2
3
4
@echo off
Set rst=HKLMSOFTWAREMicrosoftWindowsCurrentVersionExplorerVolumeCaches
REG Add "%rst%Temporary Files" /v StateFlags0001 /t REG_DWORD /d 2 /f 1>nul 2>nul
Cleanmgr /sagerun:1



4



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

В Интернете существует огромное множество различных программ-оптимизаторов компьютера для очистки от ненужных временных файлов. Но наверняка вам хотелось бы контролировать процесс собственноручно, чтобы не устанавливать сторонние оптимизаторы и не тратить свое время на активацию и регистрацию. В этом посте я научу, как чистить ваш ПК стандартными средствами операционной системы Windows.

Создание собственного оптимизатора

Первым делом откроем Блокнот через «Пуск» — «Все программы» — «Стандартные» — «Блокнот«, либо через программу «Выполнить«, нажав на клавиатуре сочетание клавиш «Win» + «R» и набрав команду «notepad«.

Теперь создадим BAT-файл. В открывшемся Блокноте щелкаем по кнопке «Файл» — «Сохранить как…«, далее выбираем местоположение на вашем ПК, например, я выбрал рабочий стол, далее пишем имя будущей программы и указываем расширение «cleaner.bat» (имя можно придумать любое, но расширение .bat менять не нужно!).

В ново созданном файле будем писать команды для очистки системы. 

Очистка временных файлов

Первым делом очистим все временные папки на вашем ПК, для этого будем использовать команду «DEL» с параметрами «/q /f /s» — файлы, подпапки, папки.

Набираем в Блокноте (bat-файле) следующее:

del /q /f /s %WINDIR%Temp*.*
del /q /f /s %SYSTEMDRIVE%Temp*.*
del /q /f /s %Temp%*.*
del /q /f /s %Tmp%*.*

где, «%WINDIR%Temp» — равносильно, что и «C:WindowsTemp«, а «%SYSTEMDRIVE%» — системный раздел, в большинстве случаев это — «C:«, «%Temp%» и «%Tmp%» — папки с временными файлами пользователей.

Очистка папки Prefetch

В папке Prefetch (файлы с расширением .pf) находится информация о часто открываемых программах и сервисах, для более быстрой их последующей загрузки. Из этой папки можно удалить все файлы, что позволит системе быстрее грузится, но при этом в первый раз программы будут загружаться медленнее. После удаления всех файлов и папки система снова создаст кэш этих часто запускаемых программ. Зачем нужно чистить эту папку? Часто в этой папке Prefetch содержится кэш давно удаленных программ, поэтому размер папки может достигнуть по умолчанию до 400 Мб.

Команда на очистку папки Prefetch:

del /q /f /s %WINDIR%Prefetch*.*

Очистка бортового журнала — логи, баки, гиды и прочее

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

Команда для очистки этих файлов:

del /q /f /s %SYSTEMDRIVE%*.log
del /q /f /s %SYSTEMDRIVE%*.bak
del /q /f /s %SYSTEMDRIVE%*.gid

Команда удалит все файлы по маске (*.log, *.bak, *.gid) на системном диске, включая подкаталоги системного диска.

Итог

Что у нас получилось?

del /q /f /s %WINDIR%Temp*.*
del /q /f /s %SYSTEMDRIVE%Temp*.*
del /q /f /s %Temp%*.*
del /q /f /s %Tmp%*.*
del /q /f /s %WINDIR%Prefetch*.*
del /q /f /s %SYSTEMDRIVE%*.log
del /q /f /s %SYSTEMDRIVE%*.bak
del /q /f /s %SYSTEMDRIVE%*.gid

Полученный результат сохраняем: «Файл» — «Сохранить«. Теперь можем запускать bat-файл для очистки системы от мусора.

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

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

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

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
5e9491791ca60985501565.png— и нажимаем «ОК» в окне «Переменные среды».

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.

Temp Files Are Taking Too Much Space! How to Auto-Delete Them

Windows always have temp files and other junk that’s just taking up space on your hard drive. We’ve covered several ways to clean up the junk by using Disk Cleanup to using a third-party utility like CCleaner. Most of the methods in that article end up cleaning out the Temp folder, but you might want to keep that folder as clean as possible. 

This article shows you how to automatically delete temporary files no matter they are from APPs, recycle bin or download folder, just follow these details below and you will be able to delete temporary files automatically.

Method 1. Create a Batch File to Automatically Clean Temp Folder

No matter you are using Windows 7 or Windows 10, you are able to auto delete temp files by creating a batch file. A lot of space can end up being saved on your hard drive by clearing out the Temp file. And if you shut down your PC every night, you can safely delete the temp files from the previous day during boot.

1. Open Notepad and type in the following:

rd %temp% /s /q

md %temp%

2. Now, save the file exactly as the path below:

%appdata%microsoftwindowsstart menuprogramsstartupcleantemp.bat

create a batch file to automatically delete temp files

That will create your batch file and save it inside the Startup folder.

After creating the batch file, you can reboot your PC and opened the Temp folder, you can see there are far fewer files than before.

With Windows 10 Fall Creators Update (version 1709), Microsoft introduced a new option in Storage sense to automatically delete files from the Downloads folder or delete temp files that are not using. The option, when turned on (turned off by default), automatically deletes unchanged files and temp files from the Downloads folder or Recycle Bin after 30 days.

Notice:
While this is a handy option, please remember that Windows 10 automatically deletes all files (not just programs or any file type) that have not seen any changes over the past 30 days. So, you might lose important files. If you often save important files in the Downloads folder or Recycle Bin (which is not a good practice), this feature is not for you.

Step 1. Open Settings app. Navigate to System > Storage.

Step 2. In the Storage sense section, turn on the Storage sense feature by moving the slider to on position.

Step 3. Click Change how we free up space link. Once again, make sure that you have turned on Storage sense feature as mentioned in the first step.

auto delete temp files in Windows 10

Step 4. Turn on Delete temporary files that my apps aren’t using option.

turn on auto delete temp files option

Then your Windows 10 will be able to delete temp files or other files automatically. 

Extra Tips: Recover Important Temp Files

If your Windows 10/8/7 delete some of your important files accidentally, you still have a chance to get them back. You can just try a data recovery software from EaseUS. It allows you to restore up to 2GB files for free. You can directly download it here and recover automatically deleted files easily.

Step 1. Select a location and start scanning

Launch EaseUS Data Recovery Wizard, hover on the partition/drive where the deleted files were stored. Click «Scan» to find lost files.

select a location where you deleted files

Step 2. Select the files you want to recover

When the scanning has finished, select the deleted files you want to recover. You can click on the filter to display only the file types you want. If you remember the file name, you can also search in the «Search files or folders» box, which is the fastest way to find the target file. 

Choose recoverable files

Step 3. Preview and recover deleted files

Preview the recoverable files. Then, select files you want to restore and click «Recover» to store the files at a new storage locations instead of the disk where the data was previously lost.

Recover deleted files

Temp Files Are Taking Too Much Space! How to Auto-Delete Them

Windows always have temp files and other junk that’s just taking up space on your hard drive. We’ve covered several ways to clean up the junk by using Disk Cleanup to using a third-party utility like CCleaner. Most of the methods in that article end up cleaning out the Temp folder, but you might want to keep that folder as clean as possible. 

This article shows you how to automatically delete temporary files no matter they are from APPs, recycle bin or download folder, just follow these details below and you will be able to delete temporary files automatically.

Method 1. Create a Batch File to Automatically Clean Temp Folder

No matter you are using Windows 7 or Windows 10, you are able to auto delete temp files by creating a batch file. A lot of space can end up being saved on your hard drive by clearing out the Temp file. And if you shut down your PC every night, you can safely delete the temp files from the previous day during boot.

1. Open Notepad and type in the following:

rd %temp% /s /q

md %temp%

2. Now, save the file exactly as the path below:

%appdata%microsoftwindowsstart menuprogramsstartupcleantemp.bat

create a batch file to automatically delete temp files

That will create your batch file and save it inside the Startup folder.

After creating the batch file, you can reboot your PC and opened the Temp folder, you can see there are far fewer files than before.

With Windows 10 Fall Creators Update (version 1709), Microsoft introduced a new option in Storage sense to automatically delete files from the Downloads folder or delete temp files that are not using. The option, when turned on (turned off by default), automatically deletes unchanged files and temp files from the Downloads folder or Recycle Bin after 30 days.

Notice:
While this is a handy option, please remember that Windows 10 automatically deletes all files (not just programs or any file type) that have not seen any changes over the past 30 days. So, you might lose important files. If you often save important files in the Downloads folder or Recycle Bin (which is not a good practice), this feature is not for you.

Step 1. Open Settings app. Navigate to System > Storage.

Step 2. In the Storage sense section, turn on the Storage sense feature by moving the slider to on position.

Step 3. Click Change how we free up space link. Once again, make sure that you have turned on Storage sense feature as mentioned in the first step.

auto delete temp files in Windows 10

Step 4. Turn on Delete temporary files that my apps aren’t using option.

turn on auto delete temp files option

Then your Windows 10 will be able to delete temp files or other files automatically. 

Extra Tips: Recover Important Temp Files

If your Windows 10/8/7 delete some of your important files accidentally, you still have a chance to get them back. You can just try a data recovery software from EaseUS. It allows you to restore up to 2GB files for free. You can directly download it here and recover automatically deleted files easily.

Step 1. Select a location and start scanning

Launch EaseUS Data Recovery Wizard, hover on the partition/drive where the deleted files were stored. Click «Scan» to find lost files.

select a location where you deleted files

Step 2. Select the files you want to recover

When the scanning has finished, select the deleted files you want to recover. You can click on the filter to display only the file types you want. If you remember the file name, you can also search in the «Search files or folders» box, which is the fastest way to find the target file. 

Choose recoverable files

Step 3. Preview and recover deleted files

Preview the recoverable files. Then, select files you want to restore and click «Recover» to store the files at a new storage locations instead of the disk where the data was previously lost.

Recover deleted files

Как вы удаляете временные файлы? Вручную запускаете 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%system32MyCleanupScript.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%system32cleanup.cmd"

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

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

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

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

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

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

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

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

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

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


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

Содержание

  1. Создание собственного чистильщика
  2. Очистка папки Prefetch
  3. Логи, баки, гиды и прочие временные файлы
  4. Папка Dllcache, кто такая и почему так много?
  5. Системная программа Disk Cleanup в помощь
  6. Очистка диска
  7. Что в итоге у нас получилось

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


Создание собственного чистильщика

Для начала откроем Блокнот и создадим bat файл. Назовите его как вам удобно, например «Cleaner«. Давайте наполним его командами, которые будут выполняться поочередно, одна за другой.

Первым делом очисти папки TEMP, обычно их бывает несколько

Для этого будем использовать команду DEL (удалить) с параметрами /F /S /Q — папки, подпапки и файлы.

DEL /F /S /Q %WINDIR%Temp*.*
DEL /F /S /Q %SYSTEMDRIVE%Temp*.*
DEL /F /S /Q %Temp%*.*
DEL /F /S /Q %Tmp%*.*

Благодаря переменным командам Windows, мы можем сделать нашу программу гибкой, и использовать на компьютере где операционная система установлена на раздел, например, с буквой D:,

%WINDIR%Temp — равносильно C:Windowstemp

%SYSTEMDRIVE% системный раздел, в большинстве случаем — C:

%Temp% и %Tmp% — переменные пути для папок временных файлов.

Очистка папки Prefetch

Напомню, в папке Prefetch ( .pf расширение) содержится информация о часто открываемых программах и сервисах, для более быстрой их последующей загрузки. Из неё можно всё удалить, система будет грузиться быстрее, а программы (в первый раз) медленнее. Но потом снова система создаст кэш этих часто запускаемых программа. Иногда в папке Prefetch содержится кэш давно удаленных программа, поэтому размеры папки бесконтрольно увеличиваются, и достигают по умолчанию до 400 Мб.

А вот и команда для очистки папки Prefetch:

DEL /F /S /Q %WINDIR%Prefetch*.*

Логи, баки, гиды и прочие временные файлы

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


DEL /F /S /Q %SYSTEMDRIVE%*.log
DEL /F /S /Q %SYSTEMDRIVE%*.bak
DEL /F /S /Q %SYSTEMDRIVE%*.gid

Суть этих команд в том что будут удалены все файлы по маске (*.log, *.bak, *.gid) на системном диске, включая подкаталоги системного диска.

Папка Dllcache, кто такая и почему так много?

Dllcache нужна для службы Windows File Protection (WFP). Эта служба необходима для обеспечении в целостности системных файлов, т. е. WFP хранит копии каждого защищаемого файла в dllcache и как только кто-то пытается заменить или изменить защищаемый файл, то он будет восстановлен из dllcache. Назначение:
— В dllcache хранятся копии части системных файлов — это большой объём.
— Dllcache растёт за время работы Win XP, а особенно во время установки новых обновлений (патчей).
— Служба WFP конфигурируется и с помощью утилиты sfc.exe. Ей же можно задать max размер dllcache или же полностью отключить данную службу.

Если у вас установлены все драйвера и необходимое программное обеспечение, может избавиться от лишней информации:

Сначала устанавливаем размер кеша в необходимый, например в 0:
sfc /cachesize=0
Затем чистим кеш:
sfc /purgecache
Система самостоятельно заполняет кеш до указанного размера (если он не 0).

Системная программа Disk Cleanup в помощь

Очистка диска


Удалить ненужные файлы можно с помощью Disk Cleanup. Многим наверняка приходилось работать с этим инструментом через графический интерфейс, но его можно запустить и из командной строки. С помощью параметров командной строки (ключей) Disk Cleanup можно настроить на удаление файлов определенных типов. Поначалу работа с командной строкой может показаться слишком сложной, но те, кто освоит ее, смогут убедиться в эффективности данного метода.

При запуске Disk Cleanup из командной строки используется команда Cleanmgr, которая имеет три параметра:

/d

/sageset

/sagerun

Автоматизация удаления файлов с помощью Cleanmgr — двухэтапный процесс. Сначала команда запускается с параметрами /d и /sageset, чтобы указать набор файлов, подлежащих удалению, а затем выполняется повторно с параметром /sagerun для проведения собственно очистки.

Параметр /d позволяет выбрать диск, с которого будут удалены ненужные файлы.

Параметр /sageset используется для выбора типов файлов, которые следует удалить (например, временные файлы установки, старые файлы Chkdsk), и присвоения данному набору типов файлов уникального номера. Синтаксис команды с параметрами /d и /sageset:

cleanmgr /d X: /sageset:n

где X — символ целевого диска, а n — уникальное числовое значение от 0 до 65535. Disk Cleanup хранит набор файлов и связанный с ним номер в реестре.

Параметр /sagerun используется для обработки утилитой Disk Cleanup набора файлов, указанных параметром /sageset. Команда имеет следующий вид:

cleanmgr /sagerun:n

где n — номер удаляемого набора файлов. При запуске команды с параметром /sagerun параметр /d не применяется.

Покажем, как организовать группу файлов для удаления, а затем применить к ним Disk Cleanup. Необходимо открыть окно командной строки и ввести команду

cleanmgr /d C: /sageset:100

затем нажать клавишу Enter. На экране 1 показано диалоговое окно Disk Cleanup Settings. В этом диалоговом окне следует выбрать типы файлов, подлежащих удалению. По щелчку на кнопке OK Disk Cleanup сохранит эту группу файлов в реестре под номером 100. Затем нужно ввести команду

cleanmgr /sagerun:100

чтобы автоматизировать применение инструмента Disk Cleanup к этим файлам. Таким образом, процедура весьма проста.

Осталось только объединить два этапа в одну команду оператором & — выполнить команду 2 при успешном выполнении команды 1.

Cleanmgr /sageset:65535 & Cleanmgr /sagerun:65535

Что в итоге у нас получилось

DEL /F /S /Q %WINDIR%Temp*.*

DEL /F /S /Q %SYSTEMDRIVE%Temp*.*

DEL /F /S /Q %Temp%*.*

DEL /F /S /Q %Tmp%*.*

DEL /F /S /Q %WINDIR%Prefetch*.*

DEL /F /S /Q %SYSTEMDRIVE%*.log

DEL /F /S /Q %SYSTEMDRIVE%*.bak

DEL /F /S /Q %SYSTEMDRIVE%*.gid

sfc /cachesize=0

sfc /purgecache

Cleanmgr /sageset:65535 & Cleanmgr /sagerun:65535

Понравилась статья? Поделить с друзьями:
  • Очистка временных файлов windows 2008 r2
  • Очистка временных файлов windows 10 программа скачать
  • Очистка временных файлов windows 10 командная строка
  • Очистка во время обновления windows 10 что это
  • Очистка буфера кэша записей windows выключена