none
Script remove arquivos por data RRS feed

  • Pergunta

  • Boas Pessoal tenho este script

    net stop "servico1"
    net stop "servico2"

    cd C:\diretorio\
    ren arquivo.log arquivo%date:~4,2%-%date:~7,2%-%date:~10,4%.log

    net start "servico1"
    net start "servico2"

    Gostaria de agregar uma linha a este script, que delete todos os arquivos com mais de 30 dias e que comece com o nome "arquivoXXX". Pesquisei aqui na technet e não encontrei.

    Alguma sugestão?

    desde já agradeço !

    Abraço

     


    Maurício Sasia MCSA|MCP wXP|MCP w2003|MCDST|MCTS|MCITP|TFC|TCSP|TCSE
    quinta-feira, 23 de setembro de 2010 11:10

Respostas

  • Maurício,

    Segue um script em VBS que realiza esta operação que você precisa. Você pode chamar ele dentro do BAT que você já tem.

     

    'Apaga arquivos que iniciam com "arquivo" no nome e mais antigos que 30 dias

    Dim selext : selext = "arquivo"
    Path = "C:\file1"
    Subfolders = True
    Lifetime = date() - 30
    FilesArray = Array()
    set fso = createobject("scripting.filesystemobject")
    SelectFiles path, lifetime, FilesArray, Subfolders
    numDeleted = 0
    for n = 0 to ubound(FilesArray)
        on error resume next
    'wscript.echo FilesArray(n).name
        FilesArray(n).delete true 
        on error goto 0
    next

    sub SelectFiles(sPath,vlifetime,FilesArrayToKill,bIncludeSubFolders)
       
        on error resume next
        set folder = fso.getfolder(sPath)
        set files  = folder.files

       
        for each file in files
         
            dtlastmodified = null
            on error resume Next
            dtlastmodified = file.datelastmodified
            on error goto 0

            if not isnull(dtlastmodified) Then
                if dtlastmodified < vlifetime then
     
      If left(lcase(file.name),7) = selext then
           
              count = ubound(FilesArrayToKill) + 1
                     redim preserve FilesArrayToKill(count)
                     set FilesArrayToKill(count) = file
     
      end if
           
         end if
            end if
        next

        if bIncludeSubFolders then
            for each fldr in folder.subfolders
                SelectFiles fldr.path,vlifetime,FilesArrayToKill,true
            next
        end if
    end sub


    Ricardo F Firmino MCP/MCTS - Se a resposta lhe ajudou, marque como util.
    quarta-feira, 29 de setembro de 2010 03:41

Todas as Respostas

  • Maurício,

    Segue um script em VBS que realiza esta operação que você precisa. Você pode chamar ele dentro do BAT que você já tem.

     

    'Apaga arquivos que iniciam com "arquivo" no nome e mais antigos que 30 dias

    Dim selext : selext = "arquivo"
    Path = "C:\file1"
    Subfolders = True
    Lifetime = date() - 30
    FilesArray = Array()
    set fso = createobject("scripting.filesystemobject")
    SelectFiles path, lifetime, FilesArray, Subfolders
    numDeleted = 0
    for n = 0 to ubound(FilesArray)
        on error resume next
    'wscript.echo FilesArray(n).name
        FilesArray(n).delete true 
        on error goto 0
    next

    sub SelectFiles(sPath,vlifetime,FilesArrayToKill,bIncludeSubFolders)
       
        on error resume next
        set folder = fso.getfolder(sPath)
        set files  = folder.files

       
        for each file in files
         
            dtlastmodified = null
            on error resume Next
            dtlastmodified = file.datelastmodified
            on error goto 0

            if not isnull(dtlastmodified) Then
                if dtlastmodified < vlifetime then
     
      If left(lcase(file.name),7) = selext then
           
              count = ubound(FilesArrayToKill) + 1
                     redim preserve FilesArrayToKill(count)
                     set FilesArrayToKill(count) = file
     
      end if
           
         end if
            end if
        next

        if bIncludeSubFolders then
            for each fldr in folder.subfolders
                SelectFiles fldr.path,vlifetime,FilesArrayToKill,true
            next
        end if
    end sub


    Ricardo F Firmino MCP/MCTS - Se a resposta lhe ajudou, marque como util.
    quarta-feira, 29 de setembro de 2010 03:41
  • Oi Ricardo, obrigado vou testar e retorno daqui a pouco aqui no Fórum
    Maurício Sasia MCSA|MCP wXP|MCP w2003|MCDST|MCTS|MCITP|TFC|TCSP|TCSE
    sexta-feira, 1 de outubro de 2010 11:48