none
Script para compactação diária RRS feed

  • Pergunta

  •  

    Olá,

     

    Estou com um pequeno problema aqui. Estou precisando de um script que pegue e compacte os arquivos criados no dia anterior ao atual, o problema é que o nome dos arquivos são sequenciais (71234, 71235, 71236, ...). Minha dificuldade está em conseguir pegar a data dos arquivos e verificar se são realmente do dia anterior.

     

    Eu estava tentando fazer isso usando um .bat, pois, possuo um script que realiza esta tarefa, porém para arquivos onde o nome é uma data.

     

    Obrigado!

     

     

    quarta-feira, 26 de dezembro de 2007 13:37

Respostas

  • Alexandre ,

     

    O Script abaixo lista os arquivos com uma determinada data ou mais antigo ...

    Faça algumas modificação para poder usar na sua compactação.

    dim numeroCont,numeroTamanho,nomeComputador,textoNew

    nomeComputador = "."

    numeroCont = 0

    numeroTamanho = 0

    Const ForAppending = 8

    set objetoFSO = CreateObject("Scripting.FileSystemObject")

    systime = Now()

    textoNew = "check.txt"

    set objetoSF = objetoFSO.OpenTextFile (textoNew, ForAppending, True)

    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & nomeComputador & "\root\cimv2")

    Set colFiles = objWMIService.ExecQuery("SELECT * FROM CIM_DataFile where Drive ='e:' and lastmodified<'20070101'")

    for each objFile in colFiles

    Set objetoSF2 = objetoFSO.GetFile (objFile.name)

    numeroCont = numeroCont +1

    numeroTamanho = numeroTamanho + cdbl(round(objfile.filesize/1024))

    ArquivoInfo = "Arquivo: " & objfile.name & vbCrLf & "Tamanho :" & cdbl(round(objfile.filesize/1024)) & "Kb" & vbCrLf & "Date last modified:" & objetoSF2.DateLastModified & vbCrLf

    objetoSf.writeline ArquivoInfo

    Next

    objetoSF.writeline ":: Imprime totais ::"

    objetoSF.writeline "Arquivos: " & numeroCont

    objetoSF.writeline "Tamanho: " & numeroTamanho & "Kb"

    objetoSF.writeline ":: Terminou ::"

    objetoSF.close

     

    O script está funcionando corretamente agora.

    Não esqueça de alterar a linha :

    Set colFiles = objWMIService.ExecQuery("SELECT * FROM CIM_DataFile where Drive ='e:' and lastmodified<'20070101'")

     

    Espero ter ajudado.

     

    Não deixe de classificar a ou as mensagens como "respondido”, caso tenha ajudado.

    Fazendo isso, você estará ajudando outros usuários do Fórum a identificar qual ou quais foram as soluções aplicadas na correção do problema.

     

    Luiz Espínola

    MCTS  - Windows 2008 Active Directory       

    MCTS  - Windows 2008 Applications Infrastructure

    MCTS  - Windows 2008 Network Infrastructure
    MCSE +Security, MCT, MCDBA, Comptia Security+

    IBM CSex, ITIL Foundation, Novell CNA, SCSA Solaris 9, Citrix CCA

     

    quinta-feira, 27 de dezembro de 2007 15:56
  • Olá,


    outra alternativa é usar o Windows PowerShell pra isso. Fica consideravelmente mais fácil e simples.

    http://www.google.com.br/search?hl=pt-BR&client=firefox-a&rls=org.mozilla:en-USSurprisefficial&hs=5Q4&q=+site:viniciuscanto.blogspot.com+vinicius+canto+powershell+arquivos+antigos

    []s,

    --
    Vinicius Canto
    MVP Windows Server - Admin Frameworks
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Bacharelando em Ciências da Computação - USP

    Blog sobre Scripting e Windows Powershell: http://viniciuscanto.blogspot.com
    sexta-feira, 28 de dezembro de 2007 01:58
    Moderador

Todas as Respostas

  • Alexandre ,

     

    O Script abaixo lista os arquivos com uma determinada data ou mais antigo ...

    Faça algumas modificação para poder usar na sua compactação.

    dim numeroCont,numeroTamanho,nomeComputador,textoNew

    nomeComputador = "."

    numeroCont = 0

    numeroTamanho = 0

    Const ForAppending = 8

    set objetoFSO = CreateObject("Scripting.FileSystemObject")

    systime = Now()

    textoNew = "check.txt"

    set objetoSF = objetoFSO.OpenTextFile (textoNew, ForAppending, True)

    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & nomeComputador & "\root\cimv2")

    Set colFiles = objWMIService.ExecQuery("SELECT * FROM CIM_DataFile where Drive ='e:' and lastmodified<'20070101'")

    for each objFile in colFiles

    Set objetoSF2 = objetoFSO.GetFile (objFile.name)

    numeroCont = numeroCont +1

    numeroTamanho = numeroTamanho + cdbl(round(objfile.filesize/1024))

    ArquivoInfo = "Arquivo: " & objfile.name & vbCrLf & "Tamanho :" & cdbl(round(objfile.filesize/1024)) & "Kb" & vbCrLf & "Date last modified:" & objetoSF2.DateLastModified & vbCrLf

    objetoSf.writeline ArquivoInfo

    Next

    objetoSF.writeline ":: Imprime totais ::"

    objetoSF.writeline "Arquivos: " & numeroCont

    objetoSF.writeline "Tamanho: " & numeroTamanho & "Kb"

    objetoSF.writeline ":: Terminou ::"

    objetoSF.close

     

    O script está funcionando corretamente agora.

    Não esqueça de alterar a linha :

    Set colFiles = objWMIService.ExecQuery("SELECT * FROM CIM_DataFile where Drive ='e:' and lastmodified<'20070101'")

     

    Espero ter ajudado.

     

    Não deixe de classificar a ou as mensagens como "respondido”, caso tenha ajudado.

    Fazendo isso, você estará ajudando outros usuários do Fórum a identificar qual ou quais foram as soluções aplicadas na correção do problema.

     

    Luiz Espínola

    MCTS  - Windows 2008 Active Directory       

    MCTS  - Windows 2008 Applications Infrastructure

    MCTS  - Windows 2008 Network Infrastructure
    MCSE +Security, MCT, MCDBA, Comptia Security+

    IBM CSex, ITIL Foundation, Novell CNA, SCSA Solaris 9, Citrix CCA

     

    quinta-feira, 27 de dezembro de 2007 15:56
  • Olá,


    outra alternativa é usar o Windows PowerShell pra isso. Fica consideravelmente mais fácil e simples.

    http://www.google.com.br/search?hl=pt-BR&client=firefox-a&rls=org.mozilla:en-USSurprisefficial&hs=5Q4&q=+site:viniciuscanto.blogspot.com+vinicius+canto+powershell+arquivos+antigos

    []s,

    --
    Vinicius Canto
    MVP Windows Server - Admin Frameworks
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Bacharelando em Ciências da Computação - USP

    Blog sobre Scripting e Windows Powershell: http://viniciuscanto.blogspot.com
    sexta-feira, 28 de dezembro de 2007 01:58
    Moderador
  • Olá Luiz!

    Estou precisando de uma ajudinha....

    Teria como você me ajudar a criar um script no windows para eu compactar uns arquivos que são gerados diariamente?

    Na verdade gostaria de criar um que compactasse todos os arquivos sempre do mês anterior, no caso, a cada ultimo dia dia do mês a 00:01 ele grava o mês todo.

    Tem como criar isso?

    Muito obriado amigo!!!

    Luiz Henrique.

    sexta-feira, 27 de abril de 2012 15:13