none
Script para deletar arquivos temporários

    Question

  • Boa Tarde,

    Preciso executar um script para deletar todos os arquivos e pastas de uma pasta temporária em alguns servidores. O script funcionou normalmente nos testes que fiz, Mas no servidor em questão apresenta erro.

    Creio que o erro seja o mesmo que ocorre quando seleciono todos os arquivos da pasta para excluir: "Está sendo usado por outra pessoa ou programa".

    Alguem sabe um jeito de fazer o script ignorar esse erro e proceguir com a exclusão das demais pastas ?

    ou

    Executar alguma outra função no script para qua o erro não ocorra ?

    O script que estou usando é o seguinte:

    "

    t,sRootPathToDelete,objFSO,objFolder,colSubFolders,BtnCode,WshShell2
    sRootPathToDelete="G:\ftproot\Temporario"
    Set objFSO=CreateObject("Scripting.FileSystemObject")
    Set objFolder=objFSO.GetFolder(sRootPathToDelete)
    Set colSubfolders=objFolder.subfolders
    For Each objSubFolder in colSubFolders
    Set fld = objFSO.GetFolder(objSubFolder)
    For Each fl In fld.Files
    objFSO.deletefile fl.path , True
    'DoEvents

    Next
    objFSO.DeleteFile("G:\ftproot\Temporario\*.*"), True
    objFSO.DeleteFile(objSubFolder+"*.*"), True
    objFSO.DeleteFolder(objSubFolder.path)

    "

    Alguem pode me ajudar ?

    Wednesday, February 02, 2011 4:33 PM

Answers

  • Nicolleti, desculpa a demora...estava enrolado..vamos la

     

    del /q /f /s %windir%\Temp *.*

    Esse comando apaga os arquivos temporarios do sistema.

     

    del /q /f /s C:\Documents and settings\%username%\Config~1\tempor~1

    Esse comando apaga os arquivos temporarios do Internet explorer.

     

    del /q /f /s C:\Documents and settings\%username%\Config~1\temp

    Esse comando apaga os arquivos temporarios do usuário.

     

    Insira essas três linhas de vermelho em seus scripts que vai ficar bacana !

     Ou

     

    Para apagar os arquivos da pasta temp do usuário atual basta digitar

    del /q "%temp%"

    e pronto. Se colocado com aspas o erro diminue em 100%

    quando o windows é instalado são criadas as variaveis de ambientes que são:

    ALLUSERSPROFILE=C:\ProgramData
    APPDATA=C:\Users\netin\AppData\Roaming
    CommonProgramFiles=C:\Program Files\Common Files
    COMPUTERNAME=PCNETIN
    ComSpec=C:\Windows\system32\cmd.exe
    HOMEDRIVE=C:
    HOMEPATH=\Users\netin
    LOCALAPPDATA=C:\Users\netin\AppData\Local
    OS=Windows_NT
    Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files\Common Files\Roxio Shared\DLLShared\;C:\ResHack;C:\ÿ\BIN;C:\Program Files\Common Files\Roxio Shared\10.0\DLLShared\;C:\Program Files\Common Files\GTK\2.0\bin;C:\Windows\System32\WindowsPowerShell\v1.0\
    .

    .

    .

    .

    SystemDrive=C:
    SystemRoot=C:\Windows
    TEMP=C:\Users\netin\AppData\Local\Temp
    TMP=C:\Users\netin\AppData\Local\Temp
    USERDOMAIN=PCnetin
    USERNAME=netin
    USERPROFILE=C:\Users\netin
    windir=C:\Windows

    Para saber todas as variáveis apra o prompt de comandos e digite Set em seguida tecle ENTER

     

    Todas estas variáveis tem que ser usada entre o simbolo %(porcentagem) Ex: %variavel%

    caso você deseje excluir os arquivos da pasta temp do usuário atual

    basta digitar: del /q %temp%

    lembre-se que com aspas diminue o erro!

     

    Se foi util, vote

    Wednesday, February 09, 2011 5:39 PM

All replies

  • Amigo,

     

    Esse script creio q pode ajudar..

     

    trPasta="C:\teste"

    set FSo = CreateObject("Scripting.FileSystemObject")

    Apagar_Arquivos(strPasta)

     

    Sub Apagar_Arquivos(Pasta)

     set folder = FSO.getFolder (Pasta)


     'Verifica se tem subpastas
     if folder.Subfolders.count > 0 then
      for each SubFolder in folder.Subfolders
       Apagar_Arquivos SubFolder
      next
     end if


     for each file in folder.files
       File.delete
    next


     if folder.Subfolders.count = 0 and folder.files.count=0 and Folder.Path<>strPasta then
      Folder.delete true
     end if

    end sub

    --------------------------------------------------------------------------------------------------------------------------

    Forma mais simples.

    Abra um txt e digita:

    del /f /s /q C:\Documents and Settings\NOME DO USUARIO\Configurações locais\temp
    del /f /s /q C:\Documents and Settings\NOME DO USUARIO\Configurações locais\temporary internet files
    del /f /s /q C:\Documents and Settings\NOME DO USUARIO\Cookies

    Salve-o como qualquer .bat

    e adicione nas tarefas agendadas.

    Pronto todo dia na hora agendada esse comando ira apagar as pastas escolhidas.

    lembrando:

    /q Modo silencioso (nao pergunta se deseja mesmo apagar)
    /f Modo force (força o arquivo ser deletado
    /s Apaga todas as subpastas dentro da pasta escolhida.

    NOME DO USUARIO e o nome do usuario que voces utilizam para logar.

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------

     

     

     

    Se for util,vote

    Thursday, February 03, 2011 8:44 PM
  • Olá,

    A primeira solução que você enviou deu um erro na linha 11 do script, como ainda sou leigo em questão de script não sei qual poderia ser o problema. A segunda não exclui as pastas, apenas os arquivos, mesmo utilizando o "/s".

    Será que estou fazendo algo errado ?

    A pasta de testes que criei é c:\temp

    o arquivo.bat ficou:

    del /f /s /q C:\temp

    Friday, February 04, 2011 4:59 PM
  • Nicolleti, desculpa a demora...estava enrolado..vamos la

     

    del /q /f /s %windir%\Temp *.*

    Esse comando apaga os arquivos temporarios do sistema.

     

    del /q /f /s C:\Documents and settings\%username%\Config~1\tempor~1

    Esse comando apaga os arquivos temporarios do Internet explorer.

     

    del /q /f /s C:\Documents and settings\%username%\Config~1\temp

    Esse comando apaga os arquivos temporarios do usuário.

     

    Insira essas três linhas de vermelho em seus scripts que vai ficar bacana !

     Ou

     

    Para apagar os arquivos da pasta temp do usuário atual basta digitar

    del /q "%temp%"

    e pronto. Se colocado com aspas o erro diminue em 100%

    quando o windows é instalado são criadas as variaveis de ambientes que são:

    ALLUSERSPROFILE=C:\ProgramData
    APPDATA=C:\Users\netin\AppData\Roaming
    CommonProgramFiles=C:\Program Files\Common Files
    COMPUTERNAME=PCNETIN
    ComSpec=C:\Windows\system32\cmd.exe
    HOMEDRIVE=C:
    HOMEPATH=\Users\netin
    LOCALAPPDATA=C:\Users\netin\AppData\Local
    OS=Windows_NT
    Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files\Common Files\Roxio Shared\DLLShared\;C:\ResHack;C:\ÿ\BIN;C:\Program Files\Common Files\Roxio Shared\10.0\DLLShared\;C:\Program Files\Common Files\GTK\2.0\bin;C:\Windows\System32\WindowsPowerShell\v1.0\
    .

    .

    .

    .

    SystemDrive=C:
    SystemRoot=C:\Windows
    TEMP=C:\Users\netin\AppData\Local\Temp
    TMP=C:\Users\netin\AppData\Local\Temp
    USERDOMAIN=PCnetin
    USERNAME=netin
    USERPROFILE=C:\Users\netin
    windir=C:\Windows

    Para saber todas as variáveis apra o prompt de comandos e digite Set em seguida tecle ENTER

     

    Todas estas variáveis tem que ser usada entre o simbolo %(porcentagem) Ex: %variavel%

    caso você deseje excluir os arquivos da pasta temp do usuário atual

    basta digitar: del /q %temp%

    lembre-se que com aspas diminue o erro!

     

    Se foi util, vote

    Wednesday, February 09, 2011 5:39 PM
  • Robson, este comando "  del /q /f /s %windir%\Temp *.*"   não deleta apenas arquivos temporários do sistema. Ao executar o mesmo e reiniciar a minha maquina eu perdi todos os meus emails da pasta do meu Thunderbird. Sabe me informa alguma maneira de fazer um rollback neste procedimento executado?


    • Edited by Wesleylc1 Tuesday, July 15, 2014 8:22 PM
    Tuesday, July 15, 2014 8:21 PM