Como remover arquivos temporários após a reinicialização no Windows?

38

O Ubuntu exclui arquivos temporários por padrão após a reinicialização, mas o Windows não. Como fazer o Windows fazer o mesmo?

mystdeim
fonte
IE arquivos temporários ou arquivos temporários do Windows? (pasta% temp%)
Lorenzo Von Matterhorn /
% TEMP% (c: \ usuário Users \ \ AppData \ Local \ temp)
mystdeim
4
O Linux tem duas pastas temporárias: / tmp é apagado na reinicialização, / var / tmp não. No Windows, é mais difícil decidir quais arquivos podem ser excluídos com segurança. Eu vi aplicativos que até armazenavam seu executável na pasta temporária (um driver, IIRC e não, não era malware). Excluir apenas arquivos temporários que não foram acessados ​​por X dias provavelmente seria uma abordagem melhor.
Dennis
11
Por que alguém faria isso em toda startup? Isso é uma perda de tempo. Planeje fazer essa limpeza uma vez por semana ou mês.
Robert Niestroj 18/03/2013
Você pode ter problemas para excluir arquivos com a extensão "etiqls" ("sqlite" para trás), pois eles geralmente são mantidos nessa pasta e bloqueados. Eles são usados ​​pelo antivírus e outros softwares e podem ser ignorados.
Rod Boev 18/03/19

Respostas:

46

Em vez de enfrentar o problema (e o perigo ) de fazer isso manualmente, eu recomendaria um programa como o CCleaner, que pode automatizar esse processo e deixar apenas os arquivos criados nas últimas 24 horas.

Isso é muito importante, pois alguns programas que também podem ser executados na inicialização já podem estar usando arquivos temporários, causando problemas. No Linux, sabe-se que o /tmpdiretório é limpo em todas as reinicializações e, portanto, todos os programas Linux são projetados com base nesse princípio.

Veja como fazer o CCleaner iniciar no Windows: Opções do CCleaner

Verifique se apenas "Arquivos temporários" e outras coisas que você realmente deseja limpar em cada inicialização estão marcados: Seleção de CCleaner

O CCleaner deve excluir apenas arquivos com mais de um dia por padrão, mas não custa verificar esta configuração: Opções avançadas do CCleaner

Depois de tudo isso, o CCleaner deve ser executado silenciosamente na área de notificação a cada inicialização. O ícone desaparecerá quando a limpeza estiver concluída. Ícone da bandeja do CCleaner

oKtosiTe
fonte
O CCleaner foi infectado uma vez. Essa é uma das razões pelas quais é sempre melhor usar funções internas do que instalar aplicativos de terceiros para uma tarefa tão trivial.
Davidbaumann
10

Eu não acho que haja uma opção para isso. Você pode criar um .batarquivo para excluir os arquivos temporários e executá-lo na inicialização (quando o Windows iniciar). O seguinte deve funcionar:

Exclua todos os arquivos em% temp%, mas deixe as pastas intocadas:

@echo off
del /s /f /q "%temp%/*.*"

Exclua tudo em% temp%:

@echo off
rmdir /s /q %temp%
md %temp%

Exclua todos os .tmparquivos:

@echo off
del /s /f /q "%temp%/*.tmp"

Esteja ciente de que alguns programas usam arquivos %temp%para executar, por isso, por sua conta e risco.

Para .batexecutar a inicialização, siga este tutorial da Microsoft ou de um dos muitos outros online ...

Alex
fonte
8

Por uma questão de fato, é um desperdício de tempo do processador executar essa limpeza em cada inicialização.

Em vez disso, adicione uma tarefa agendada, acionada uma vez por semana para executar um lote localizado no mesmo diretório do ccleaner , contendo:

ccleaner /AUTO

Isso executará uma verificação e limpeza automática sem nenhum aviso para todas as caixas marcadas no ccleaner e incluirá diretórios especificados pelo usuário. (não executa correções do registro)

dica extra: nas propriedades do lote, você pode até selecioná-lo para ser minimizado, o que o incomoda menos na inicialização; a verificação será rápida e provavelmente você nem notará a janela minimizada.

Lorenzo Von Matterhorn
fonte
11
Existe alguma evidência de que este é um assunto factual? oO
Smithers
1

Meu arquivo em lotes para remover arquivos temporários com mais de um dia

IF EXIST %TEMP% ( FORFILES /P %TEMP% /D -01 /C "cmd /c IF @isdir==TRUE (rd /s /q @path) else (del /q @path)" )
Arnaud Grandville
fonte
11
Não há DOS por um longo tempo
davidbaumann
0

cleanmgr

Você pode usar a função interna do Windows para limpar todos os arquivos temporários (e muito mais).

Apenas uma vez, corra

CLEANMGR /sageset

Agora selecione qualquer coisa que você queira limpar.

Agora executando

CLEANMGR /sagerun

ele executará exatamente todos os trabalhos de limpeza conforme selecionado.

Veja mais na Base de Conhecimento Microsoft .

davidbaumann
fonte