Excluir arquivos temporários do script em lote no xp

7

Estou procurando um bom script em lote que encontre rapidamente & limpar todas as pastas / arquivos temporários seguros conhecidos das máquinas Windows (o maior número possível de variantes) (por exemplo, a pasta temp do Windows, todos os usuários, pastas temporárias do IE, etc.). Eu gosto de ferramentas de interface do usuário como o CCleaner (sobre Cleanmgr.exe), mas quando estou tentando limpar vários computadores com rapidez e / ou com um envolvimento mínimo, seria bom ter um script.

Além disso, com um script, eu poderia encadear vários scripts juntos. Talvez um deles acione vários detectores antivírus e / ou de malware.

Alguém tem um bom ou pode apontar para um bom recurso?

    
por Keith Bentrup 04.06.2009 / 05:01

6 respostas

7

Aqui está um pequeno script que escrevi e que mantenho em minha unidade de utilitário USB ... EXCELENTE para servidores citrix:)

@echo off
Echo Started %time%
Echo Started %time% >> temps.txt
Echo Running for XP... >> temps.txt
Echo Running for XP...
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\Local Settings\Temp\" (
    RMDIR /S /Q "%%G\Local Settings\Temp"
    MKDIR "%%G\Local Settings\Temp"
    Echo Cleared %%G\Local Settings\Temp
    Echo Cleared %%G\Local Settings\Temp >> temps.txt
)
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\Local Settings\Temporary Internet Files\" (
    RMDIR /S /Q "%%G\Local Settings\Temporary Internet Files\"
    MKDIR "%%G\Local Settings\Temporary Internet Files\"
    Echo Cleared %%G\Local Settings\Temporary Internet Files\
    Echo Cleared %%G\Local Settings\Temporary Internet Files\ >> temps.txt
)
Echo Done.
Echo Running for Vista >> temps.txt
Echo Running for Vista...
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\AppData\Local\Temp\" (
    RMDIR /S /Q "%%G\AppData\Local\Temp\"
    MKDIR "%%G\AppData\Local\Temp\"
    Echo Cleared %%G\AppData\Local\Temp\
    Echo Cleared %%G\AppData\Local\Temp\ >> temps.txt
)
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\AppData\Local\Microsoft\Windows\Temporary Internet Files\" (
    RMDIR /S /Q "%%G\AppData\Local\Microsoft\Windows\Temporary Internet Files\"
    MKDIR "%%G\AppData\Local\Microsoft\Windows\Temporary Internet Files\"
    Echo Cleared %%G\Local Settings\Temporary Internet Files\
    Echo Cleared %%G\Local Settings\Temporary Internet Files\ >> temps.txt
)
Echo Done.
Echo Ended %time%
Echo Ended %time% >> temps.txt

Use a seu próprio risco, etc ... Isso exclui coisas.

Eu corro isso na pasta Documents and Settings ou em Usuários no Vista. Você poderia facilmente lançar um comando de CD no topo para rodar isso de qualquer lugar que você quiser.

cd %userprofile%
cd ..

Além disso, geralmente é seguro limpar a pasta temp a qualquer momento da minha experiência. Programas usando arquivos em temp os bloquearão, e esse script irá gerar um erro nesse arquivo e continuar.

A linha IF EXIST é particularmente legal aqui, ela impede que o script crie pastas no NetworkService e em pastas semelhantes, e se você não estiver executando no Vista ou no XP, essa seção é super rápida.

Cria o arquivo de log temps.txt onde você já executou o script de

Editar: Conselhos do ## windows-server no Freenode: P: Por que você não detecta em qual sistema operacional está sendo executado no início e executa a seção apropriada? R: Eu uso o script com frequência em mídia off-line, como um disco rígido extraído.

    
por 04.06.2009 / 09:29
3

Tenha cuidado com a lixeira de arquivos temporários. Alguns instaladores de software armazenam arquivos entre as inicializações. Um antigo chefe meu guardou arquivos importantes lá (mas, então, ele não era muito esperto sobre algumas coisas).

Em um arquivo de lote, faça:

DEL /S /Q "%TEMP%\*.*"

Vai fazer o que quiser. Executar isso como um script de logon (ou enquanto estiver conectado, em geral) limpará o diretório temporário por usuário. Executá-lo como um script de inicialização (durante a execução como .DEFAULT) limpará o diretório temporário por máquina.

Eu tenho um VBScript que eu corro para limpar arquivos temporários na inicialização e no logon com base em sua idade. É algo que pertence a um cliente, então não posso postar aqui (escreveu em seu centavo), mas é algo que um criador de scripts poderia reunir em poucos minutos para você.

Não conheço uma API suportada para limpar o IE "Temporary Internet Files". Você poderia simplesmente excluí-los, suponho, mas não o faria.

    
por 04.06.2009 / 05:15
3

A melhor maneira segura de limpar os diretórios temporários é com o cleanmgr. A desvantagem é que você tem que executar o sageset em cada máquina ou (e muito mais fácil) é construir um arquivo ADM com as entradas do registro e usar a política de grupo para empurrá-los para os desktops do cliente. a chave do Registro para examinar é: HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ VolumeCaches

Veja também Como automatizar a ferramenta Limpeza de disco no Windows XP

    
por 04.06.2009 / 05:19
1

Vocês estão fazendo tudo muito difícil. Este é o Windows XP que ele está perguntando. Aqui estão alguns úteis:

DEL /Q /S "%USERPROFILE%\Local Settings\Temp\*.*"
DEL /F /Q /S "%USERPROFILE%\Local Settings\Temporary Internet Files\*.*" >NUL
DEL /F /Q /S "%WinDir%\Temp\*.*"
    
por 04.05.2012 / 12:07
0

Por que não usar apenas o Ccleaner no seu script, já que ele já tem todas as funções que você precisa. E então use Psexec para empurrar seu script, que chama Ccleaner, e então exclua Ccleaner quando terminar. Você pode adicionar um arquivo .ini que contém todas as configurações desejadas no Ccleaner. Dessa forma, você não precisa reinventar a roda. É tudo sobre Reutilização.

    
por 24.08.2010 / 05:12
0

Eu prefiro excluir os arquivos do que a pasta no XP; porque temos um aplicativo que armazena LOTES de arquivos temporários e os deixa lá. Eu quero excluir os arquivos em todos os perfis de usuário.

FOR /F "tokens=1" %%G IN ('DIR /B /AD "c:\documents and settings"') DO IF EXIST "c:\documents and settings\%%G\Local Settings\Temp\" (del "c:\documents and settings\%%G\local settings\temp\*.*"/Q)
    
por 11.04.2011 / 11:37