Exclua arquivos temporários do script em lote no XP

Exclua arquivos temporários do script em lote no XP

Estou procurando um bom script em lote que encontre e limpe rapidamente todas as pastas/arquivos temporários seguros conhecidos das máquinas Windows (tantas variantes quanto possível) (por exemplo, a pasta temporária do Windows, todas as pastas temporárias do IE dos usuários, etc.). Gosto de ferramentas de UI como CCleaner (em vez de Cleanmgr.exe), mas quando tento limpar vários computadoresrapidamente e/ou com envolvimento mínimo, seria bom ter um script.

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

Alguém tem um bom ou pode indicar um bom recurso?

Responder1

Aqui está um pequeno script que escrevi e mantenho em minha unidade utilitária USB... ÓTIMO 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 por sua conta e risco, etc... ISTO EXCLUI COISAS.

Eu executo isso na pasta Documentos e Configurações ou Usuários no Vista. Você pode facilmente lançar um comando de CD para executá-lo de qualquer lugar que desejar.

cd %userprofile%
cd ..

Além disso, geralmente é seguro limpar a pasta temporária a qualquer momento na minha experiência. Os programas que usam arquivos temporários irão bloqueá-los, e este script irá gerar um erro nesse arquivo e continuar.

A linha IF EXIST é particularmente boa aqui, pois evita que o script crie pastas no NetworkService e pastas semelhantes, e se você não estiver executando no Vista ou XP, essa seção passa super rápido.

Cria o arquivo de log temps.txt de onde você executa o script

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

Responder2

Tenha cuidado ao descartar arquivos temporários. Alguns instaladores de software armazenam arquivos entre as inicializações. Um antigo chefe meu armazenava arquivos importantes lá (mas, na verdade, ele não era muito esclarecido sobre algumas coisas).

Em um arquivo em lote, faça:

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

Fará o que quiser. Executá-lo 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 executo para limpar arquivos temporários na inicialização e no logon com base na idade. É algo que pertence a um cliente, então não posso postar aqui (escrevi às custas dele), mas é algo que um criador de scripts poderia montar para você em alguns minutos.

Não conheço uma API suportada para limpar os "Arquivos Temporários da Internet" do IE. Você poderia simplesmente excluí-los, suponho, mas eu não faria isso.

Responder3

O melhorseguroA maneira de limpar os diretórios temporários é com cleanmgr. A desvantagem é que você precisa executar o sageset em cada máquina ou (e muito mais fácil) criar um arquivo ADM com as entradas do registro e usar a política de grupo para enviá-las aos desktops dos clientes. a chave de registro a ser observada é: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches

Veja tambémComo automatizar a ferramenta de limpeza de disco no Windows XP

Responder4

Por que não usar apenas o Ccleaner no seu script, pois ele já possui todas as funções que você precisa. E então use Psexec para enviar seu script, que chama Ccleaner, e exclua Ccleaner quando terminar. Você pode adicionar um arquivo .ini que contenha todas as configurações desejadas no Ccleaner. Dessa forma, você não precisa reinventar a roda. É tudo uma questão de reutilização.

informação relacionada