none
Listar arquivos por data de criação. RRS feed

  • Discussão Geral

  • PessoALL,

    Preciso de um help!

    Estou precisando de um script para listar os arquivos de uma determinada pasta dentre um período de tempo. Seria algo assim: O usuário entraria com a pasta "c:\temp", data inicial e data final e o script retornaria com os arquivos dentre o período especificado. Nesse caso teria que ser a data de modificação do arquivo. Desde já, agradeço quem puder dar uma ajuda.


    Problemas com som? CLIQUE AQUI! - Guia criado pelo Moderador Fábio.
    ----------------
    Abraços,
    Pietro.
    segunda-feira, 17 de janeiro de 2011 14:17

Todas as Respostas

  • Pessoal,
    Pesquisei um pouco aqui no forum e achei esse script que o Larte postou, porém ele varre o todo o computador em busca dos arquivos. Alguém saberia alterá-lo para pesquisar em apenas uma pasta? 

    Narquivo = ""
    inicio = ""
    fim = ""
    Set objFSo = CreateObject("Scripting.FileSystemObject")
    Verifica_Data()
    Verificar_Arquivo()
    arquivos = ""
    cont = 0
    tamanho = 0
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colFiles = objWMIService.ExecQuery("SELECT * FROM CIM_DataFile WHERE extension = 'doc' or extension = 'xls' or extension = 'jpg' or extension = 'pps' or extension = 'ppt' or extension = 'pdf'")
    For Each objFile in colFiles
    If cdbl(mid(objfile.lastmodified, 1, 8)) => cdbl(inicio) and cdbl(mid(objfile.lastmodified, 1, 8)) <= cdbl(fim) then
      cont = cont +1
      If Len(objfile.filename) > 25 then
        arquivos = arquivos & Mid(objfile.filename,1, 25) & "." & objfile.extension & Space(15) & cdbl(round(objfile.filesize/1024)) & "KB" & vbCrLf
      else
        intSpaces = 40 - Len(objfile.fileName)
        arquivos = arquivos & objfile.filename & "." & objfile.extension & Space(intSpaces) & cdbl(round(objfile.filesize/1024)) & "Kb" & vbCrLf
      End If
      tamanho = tamanho + cdbl(round(objfile.filesize/1024))
    end if
    Next

    Set objtxt = objFSO.CreateTextFile(narquivo & ".txt", 2, true)

    objtxt.WriteLine "O número de arquivos modificados entre o periodo de " & inicio & " a " & fim & " é:" & cont
    objtxt.Writeline "---------------------------"
    objtxt.WriteLine "Os arquivos modificados são:" & space(16) & "tamanho:" & vbcrLf & arquivos
    objtxt.Writeline "---------------------------"
    objtxt.WriteLine "O tamanho total ocupado em disco é:" & round(tamanho/1024) & "MB"
    objtxt.Writeline "---------------------------"

    objtxt.Close
    Sub Verificar_Arquivo()
    Narquivo = InputBox("Nome do Arquivo a ser salvo")
    If ObjFSo.Fileexists(Narquivo & ".txt") = true then
       substituir = msgbox("Arquivo já existe.Deseja Substitui-lo?",vbYesNo)
       If substituir = VbNo then
       wscript.echo "Digite outro nome!"
       Verificar_Arquivo()
       End If
    End If
    End Sub

    sub Verifica_Data()
    inicio = InputBox("Data inicial:" & vbCrlf & "Exemplo: 20060101")
    fim = InputBox("Data final:" & vbCrlf & "Exemplo: 20061231")
    if Cdbl(inicio) > Cdbl(fim) then
     wscript.echo "periodo incorreto! Digite Novamente."
     Verifica_Data() 
    end If
    End Sub


    Problemas com som? CLIQUE AQUI! - Guia criado pelo Moderador Fábio.
    ----------------
    Abraços,
    Pietro.
    quarta-feira, 26 de janeiro de 2011 11:26