Очистка папки temp в windows 10 bat

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

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

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

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

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

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

$Days = "7"
$TargetFolder = "C:\Windows\Temp\", "$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:\Windows\Temp\» и «C:\Users\имя_текущего_пользователя\Appdata\Local\Temp».

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

Как безопасно удалить временные файлы в Windows 10

Есть множество программ, которые автоматически удаляют временные файлы в Windows 10, но вот стоит ли им доверять? Некоторые приложения просто следят за пользователями и отправляют данные разработчикам, но были и случаи, когда в дистрибутивы встраивались вирусы. Таким образом, самый лучший способ очистить временные файлы — сделать это самостоятельно, ручками. А точнее с помощью .bat файла.

Как безопасно удалить временные файлы в Windows 10

Создадим .bat файл с командами на очистку директорий с временными файлами.

1. Запустите Блокнот (C:\Windows\notepad.exe).

2. Скопируйте в него команды:

RD /S /Q %TEMP%
RD /S /Q %Windir%\temp
RD /S /Q %ProgramData%\Temp
RD /S /Q %ProgramData%\USOShared\Logs
RD /S /Q %ProgramData%\Microsoft\Search\Data\Temp
RD /S /Q %userprofile%\AppData\Local\CrashDumps

MD %Windir%\Temp
MD %ProgramData%\Temp
MD %ProgramData%\Microsoft\Search\Data\Temp

3. В меню блокнота выберите «Файл»«Сохранить как».

4. Выберите место сохранение файла, укажите имя файла с расширением .bat и, обязательно, в поле «Тип файла» установите «Все файлы»

5. Нажмите кнопку «Сохранить».

6. Запустите сохранённый файл с правами Администратора.

Дождитесь окончания удаления файлов и готово!


Спасибо, что читаете! На данный момент большинство моих заметок, статей и подборок выходит в telegram канале «Левашов». Обязательно подписывайтесь, чтобы не пропустить новости мира ИТ, полезные инструкции и нужные сервисы.


Респект за пост! Спасибо за работу!

Хотите больше постов в блоге? Подборок софта и сервисов, а также обзоры на гаджеты? Сейчас, чтобы писать регулярно и радовать вас большими обзорами, мне требуется помощь. Чтобы поддерживать сайт на регулярной основе, вы можете оформить подписку на российском сервисе Boosty. Или воспользоваться ЮMoney (бывшие Яндекс Деньги) для разовой поддержки:


Заранее спасибо! Все собранные средства будут пущены на развитие сайта. Поддержка проекта является подарком владельцу сайта.

Внимание, кодировка по стандарту для нормальной работы скриптов 866. По этому на gitHub может отображаться не корректно!

Запускаем itsCleanable START.bat от имени Администратора.

Обязательно должны лежать рядом itsCleanable.bat и itsDiagnostic.bat

===itsCleanable.bat + itsDiagnostic.bat | Версия 1.1.12 :===

  1. %SystemDrive% заменил на диск C:

===itsCleanable.bat + itsDiagnostic.bat | Версия 1.1.11 :===

20.05.2021
1.1 Добавлен сценарий. Диагностика теперь работает опционально. Спрашивает, нужно ли проводить диагностику перед запуском скрипта.
1.2 Если соглашаешься, с начало производиться очистка диска, затем диагностика.
1.3 Если отказываешься, то производиться только очистка диска.

===itsCleanable.bat + itsDiagnostic.bat | Версия 1.0.10 :===

18.05.2021

  1. Удаление Кеша в Касперском по директории %SystemDrive%\ProgramData\Kaspersky Lab\KES\Cache

  2. Удаление временных файлов СекретНета patch.exe по директории %SystemDrive%\ProgramData\Security Code\Secret Net Studio\localcache\patch.exe

  3. Удаление дампов и логов %SystemDrive%\ProgramData\VMware\VDM\logs и %SystemDrive%\ProgramData\VMware\VDM\Dumps

  4. Удаление временных файлов по директории %SystemDrive%\ProgramData\Veeam\Setup\Temp*

  5. Удаление кеша и логов по директориям:
    5.1. %WINDIR%\ServiceProfiles\NetworkService\AppData\Local\Microsoft\Windows\DeliveryOptimization\Cache
    5.2. %WINDIR%\ServiceProfiles\NetworkService\AppData\Local\Microsoft\Windows\DeliveryOptimization\Logs

  6. Удаление временных файлов в %WINDIR%\Installer$PatchCache$

  7. Удаление временных файлов драйверов Рутокена по директории %SystemDrive%\ProgramData\Aktiv Co\

  8. Удаление временных файлов %SystemDrive%\ProgramData\Crypto Pro\Installer Cache

  9. Удаление временных файлов %SystemDrive%\ProgramData\USOShared\Logs

  10. Удаление установочных файлов по директории:
    10.1. del «%USERPROFILE%\AppData\Local\Yandex\YandexBrowser\Application\browser.7z» /s /f /q
    10.2. del «%USERPROFILE%\AppData\Local\Yandex\YandexBrowser\Application\brand-package.cab» /s /f /q
    10.3. del «%USERPROFILE%\AppData\Local\Yandex\YandexBrowser\Application\setup.exe» /s /f /q

  11. Удаление Кеша поиска Windows:

  12. Остановка службы Windows Search
    12.1. net stop «Windows Search»
    12.2. REG ADD «HKLM\SOFTWARE\Microsoft\Windows Search» /v SetupCompletedSuccessfully /t REG_DWORD /d 0 /f
    12.3. del %PROGRAMDATA%\Microsoft\Search\Data\Applications\Windows\Windows.edb
    12.4. net start «Windows Search»

  13. Остановка не нужных служб
    13.1. echo XBOX
    13.2. net stop «Xbox Accessory Management Service»
    13.3. echo Телефония
    13.4. net stop «net stop «TapiSrv»»
    13.5. echo Биометрическая служба Windows
    13.6. net stop «WbioSrvc»
    13.7. echo Диспетчер проверки подлинности Xbox Live
    13.8. net stop «XblAuthManager»
    13.9. echo Родительский контроль
    13.10. net stop «WpcMonSvc»
    13.11. echo Сетевая служба Xbox Live
    13.12. net stop «XboxNetApiSvc»
    13.13. echo Служба Windows License Manager
    13.14. net stop «LicenseManager»
    13.15. echo Windows Mobile Hotspot
    13.16. net stop «icssvc»
    13.17. echo Служба демонстрации магазина
    13.18. net stop «RetailDemo»
    13.19. echo Служба управления радио
    13.20. net stop «RmSvc»
    13.21. echo Факс
    13.22. net stop «Fax»

===itsCleanable.bat + itsDiagnostic.bat | Версия 1.0.9 :===

  1. Добавлен текст перед запуском программы.
  2. Теперь когда скрипт запускается, он считывает директорию и копирует скрипты в корень диска. По окончанию он их удаляет.
  3. Добавлены цветные текста в основном скрипте START.bat
  4. Все логи теперь храняться в LogsCache.
  5. Все логи теперь имеют дату и время в формате: %date:~0,2%-%date:~3,2%-%date:~8,2%_%mytime%
  6. Скрипт itsCleanable.bat выдает особые права (Повышенные права) на папки и файлы, которые собирается удалять.
  7. Удаление папки по директории: ‘C:\Windows10Upgrade’
  8. Удаление папки по директории: ‘C:$WINDOWS.~BT’

===itsCleanable.bat + itsDiagnostic.bat | Версия 1.0.7:===

  1. Добавлена новая команда на очистку директории:
  2. del «C:\logs» /s /f /q

===itsCleanable.bat + itsDiagnostic.bat | Версия 1.0.6:===

09.05.2021 Update

  1. Логи очистки, Логи диагностики выводятся в отдельные файлы и одновременно транслируются в консоль.
  2. Скрипт очистки и Скрипт Диагностики теперь отдельные скрипты, которые взаимосвязаны между собой.
  3. Отдельный скрипт START их запускает. В начале он показывает размер свободного пространства на диске и записывает в лог фаил. А в конце стоит задержка 30 минут. Либо в ручную останавливать скрипт любой клавишей, либо он автоматически завершиться через 30 минут.
  4. После этого он только тогда показывает свободное пространство на диске. Сколько освободилось после очистки.
  5. Пришлось пожертвовать цветными текстами в консоле.
  6. Ну и сократить код почти в 2 раза, так как большое кол-во кода было из за цветных символов.
  7. Добавил ожидание отработки отдельных процессов. Пока не завершатся, сам скрипт не завершит свой процесс.
  8. Удалил задержку на 30 минут в связи с тем, что есть отработка отдельных процессов.

===itsCleanable.bat | Версия 1.0.5:===

  1. Удалено сжатие файлов, т.к ухудшается производительность.
  2. Удалена очистка корзины, т.к могут возникать проблемы с корзиной.
  3. Удалена возможность удалять %WINDIR%\WinSxS\Temp* — не стоит трогать эту папку.
  4. Добавлена возможность запуска отключенной службы в конце скрипта

===itsCleanable.bat | Версия 1.0.4:===

06.05.2021 Update

  1. В результате тестов на тестовом образе обнаружены следующие временные папки:
  2. C:\AMD
  3. C:$Recycle.Bin
  4. C:\ProgramData\LANDesk\Temp
  5. C:\Users\User\AppData\Local\Temp
  6. C:\Users\Администратор\AppData\Local\Temp
  7. C:\Intel
  8. Данные папки будут удаляться при выполнения скрипта.
  9. Удалены лишние команды.
  10. Исправлены незначительные ошибки.
  11. Произведены тесты на образах:
  12. Чистой системе Windows

===itsCleanable.bat | Версия 1.0.3:===

  1. Добавлено отключение службы обновления Windows.
  2. Удалено очистка папки Installer
  3. del «%WINDIR%\Installer*» /s /f /q

===itsCleanable.bat | Версия 1.0.2:===

  1. Удалена возможность удалять теневые копии.

  2. %windir%\system32\cmd.exe /c «start VSSADMIN Delete Shadows /All /Quiet»

  3. Добавлено очистка диска по следуюшим директориям:

  4. del «%WINDIR%\WinSxS\Temp*» /s /f /q

  5. del «%WINDIR%\Installer*» /s /f /q

  6. del «%SystemDrive%%ProgramData%\Kaspersky Lab\KES\Temp*» /s /f /q

  7. del «%SystemDrive%%ProgramData%\KasperskyLab\adminkit\1103$FTCITmp*» /s /f /q

  8. del «%SystemDrive%%ProgramData%\Intel\Logs*» /s /f /q

  9. del «%SystemDrive%%ProgramData%\Intel\Package Cache*» /s /f /q

  10. del «%SystemDrive%%ProgramData%\Crypto Pro\Installer Cache*» /s /f /q

  11. del «%SystemDrive%%ProgramData%\Package Cache*» /s /f /q

  12. del «%SystemDrive%%ProgramData%\Oracle\Java\installcache_x64*» /s /f /q

  13. del «%SystemDrive%%ProgramData%\LANDesk\Log*» /s /f /q

  14. del «%SystemDrive%\SWSetup*» /s /f /q

  15. del «%SystemDrive%\MSOCache\All Users*» /s /f /q

  16. Результат: Очистка 3.3 GB на ноутбуке.

===itsCleanable.bat | Версия 1.0.1:===

  1. Добавлена цветная консоль

  2. Спрашивает, запускать то или иное действие (Настраиваемо).

  3. Добавлена очистка диска по следующим директориям:

  4. del «C:\Windows\Logs*» /s /f /q

  5. del «%WINDIR%\Temp*» /s /f /q

  6. del «%USERPROFILE%\AppData\Local\Temp*» /s /f /q

  7. del «C:\Windows\SoftwareDistribution\Download*» /s /f /q

  8. del «C:\ProgramData\Microsoft\Diagnosis*» /s /f /q

  9. %windir%\system32\cmd.exe /c «start VSSADMIN Delete Shadows /All /Quiet»

  10. del «%SystemDrive%\Program Files (x86)\LANDesk\LDClient\sdmcache*» /s /f /q

  11. Добавлена стандартная очистка диска в отдельной консоли

  12. %windir%\system32\cmd.exe /c «start cleanmgr /sageset:64539

  13. %windir%\system32\cmd.exe /c «start cleanmgr /sagerun:64539

  14. cleanmgr.exe /SETUP

  15. Добавлена диагностика и сканирование системы, обновление политиков:

  16. %windir%\system32\cmd.exe /c «start DISM /Online /Cleanup-Image /RestoreHealth

  17. %windir%\system32\cmd.exe /c «start sfc /scannow

  18. %windir%\system32\cmd.exe /c «start gpupdate /force

  19. Добавлено сжатие файлов:

  20. Compact /c /s «C:»

  21. Compact /c /s «C:\Users»

В ОС 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:\Windows\Temp«, а «%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-файл для очистки системы от мусора.

98
Записи

4
Пользователи

2
Likes

33.4 Тыс.
Просмотры

STALKER_SLX

(@stalker_slx)

Estimable Member

Присоединился: 5 лет назад

Доброго времени суток, уважаемые форумчане!

Тема данного вопроса уже многократно избита на просторах Интернета, но очень бы хотелось услышать мнение опытных практикующих админов!

Нашел простенький батник (назовём его «del_tmp.bat») со следующим содержимым:

@echo OFF

del %Temp%\*.* /S /F /Q

del c:\windows\temp\*.* /S /F /Q

echo Vse vremennyie fayly udaleny

pause

@echo ON

Данный скрипт хорошо справляется с удалением временных файлов в профиле пользователя и чистит c:\windows\temp. Но есть одно «Но» — он удаляет только лишь файлы!

1. В связи с чем вопрос: какие строки нужно добавить в указанный bat-файл, чтобы он удалял и ПАПКИ по указанных путях?!

2. Если есть у кого-то скрипт получше – прошу поделится!

3. Будет такой скрипт нормально выполняться на продакшин серверах ( сам пока еще не тестировал) ?! Или нужно что-то иное применять?!

(@zerox)

Prominent Member

Присоединился: 10 лет назад

Я вот такой строкой чищу директории старше 30 дней:

forfiles /p D:\tmp /s /d -30 /c «cmd /c rmdir /s /q @path»

А вот этой файлы:

forfiles /p D:\tmp /s /d -30 /c «cmd /c del @path /q»

Это сообщение было изменено 5 лет назад от Zerox

(@zerox)

Prominent Member

Присоединился: 10 лет назад

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

STALKER_SLX

(@stalker_slx)

Estimable Member

Присоединился: 5 лет назад

Спасибо Вам, Zerox, за помощь!

Данную задачу решил следующим образом – к указанным выше строкам добавил еще парочку (которые как раз таки отвечают за удаление ПАПОК, по заданным путям):

SET Path2Del=C:\Windows\Temp\

for /R «%Path2Del%» %%F in (.) DO IF NOT «%%F»==»%Path2Del%.» (RD /S /Q «%%F») ELSE (Del /F /S /Q «%Path2Del%*»)

SET Path2Del=%Temp%\

for /R «%Path2Del%» %%F in (.) DO IF NOT «%%F»==»%Path2Del%.» (RD /S /Q «%%F») ELSE (Del /F /S /Q «%Path2Del%*»)

В итоге вся конструкция теперь выглядит так:

@echo off

del %Temp%\*.* /S /F /Q

del C:\Windows\Temp\*.* /S /F /Q

SET Path2Del=C:\Windows\Temp\

for /R «%Path2Del%» %%F in (.) DO IF NOT «%%F»==»%Path2Del%.» (RD /S /Q «%%F») ELSE (Del /F /S /Q «%Path2Del%*»)

SET Path2Del=%Temp%\

for /R «%Path2Del%» %%F in (.) DO IF NOT «%%F»==»%Path2Del%.» (RD /S /Q «%%F») ELSE (Del /F /S /Q «%Path2Del%*»)

echo Vse vremennyie faylyi i papki udaleny

pause

@echo ON

Если кому- то в будущем понадобиться такой файлик, то прикрепляю его в архиве «del_tmp_files_&_folders.zip»

P.S.: Как только появиться немного времени попробую еще погуглить, чтобы решить эту же задачу более элегантно и универсально, но средствами самого PowerShell!


Страница 1 / 17

Следующий

  • Очистка системы от мусора windows 10 программы
  • Очистка от мусора в операционной системе windows 7
  • Очистка системной памяти windows 10
  • Очистка памяти компьютера windows 10 утилита
  • Очистка реестра windows 7 ccleaner скачать бесплатно на русском