none
Mover arquivos e pastas utilizando data de modificação RRS feed

  • Pergunta

  • Estou precisando fazer um script .VBS para mover arquivos e pastas utilizando a data de modificação do mesmo, a ideia é que todos os arquivos que tenham a data menor que a data especificada sejam copiados para outra pasta.

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

    'pasta de origem
    strPasta = "D:\bkp"

    'pasta de destino
    strDest = "D:\Teste"

    'contem o valor em dias que estou utilizando
    difference = DateAdd ("d",now,-5)


    Set objFSO = CreateObject("Scripting.FileSystemObject")


    'Saber arquivos de uma pasta
    Set objfo = objFSO.GetFolder(strPasta).Files 

    Set objFolder = CreateObject("Scripting.FileSystemObject")

    'obter a data de modificação
    objFolder = ObjFSO.GetFolder(strPasta).DateLastModified 

    For Each  objFolder In objfo 
    If (difference < objFolder) then

    objFSO.CopyFolder "D:\bkp", "D:\Teste",true
    Else 
    End If

    Next

    Obrigado a Todos

     

     

    quarta-feira, 9 de dezembro de 2009 18:28

Respostas

  • Estou precisando fazer um script .VBS para mover arquivos e pastas utilizando a data de modificação do mesmo, a ideia é que todos os arquivos que tenham a data menor que a data especificada sejam copiados para outra pasta.

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

    'pasta de origem
    strPasta = "D:\bkp"

    'pasta de destino
    strDest = "D:\Teste"

    'contem o valor em dias que estou utilizando
    difference = DateAdd ("d",now,-5)


    Set objFSO = CreateObject("Scripting.FileSystemObject")


    'Saber arquivos de uma pasta
    Set objfo = objFSO.GetFolder(strPasta).Files 

    Set objFolder = CreateObject("Scripting.FileSystemObject")

    'obter a data de modificação
    objFolder = ObjFSO.GetFolder(strPasta).DateLastModified 

    For Each  objFolder In objfo 
    If (difference < objFolder) then

    objFSO.CopyFolder "D:\bkp", "D:\Teste",true
    Else 
    End If

    Next

    Obrigado a Todos

     

     


    Rkes, boa tarde.

    Segue o link...

    http://social.technet.microsoft.com/Forums/pt-BR/scriptadminpt/thread/7f2e55cc-fa56-41b1-842e-0462c25e1003


    Utilize o search so site, no forum possui um material excelente!
    Qualquer duvida poste!
    Se util classifique!

    Poste os resultados!.

    []s,

    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    quarta-feira, 9 de dezembro de 2009 18:42

Todas as Respostas

  • Estou precisando fazer um script .VBS para mover arquivos e pastas utilizando a data de modificação do mesmo, a ideia é que todos os arquivos que tenham a data menor que a data especificada sejam copiados para outra pasta.

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

    'pasta de origem
    strPasta = "D:\bkp"

    'pasta de destino
    strDest = "D:\Teste"

    'contem o valor em dias que estou utilizando
    difference = DateAdd ("d",now,-5)


    Set objFSO = CreateObject("Scripting.FileSystemObject")


    'Saber arquivos de uma pasta
    Set objfo = objFSO.GetFolder(strPasta).Files 

    Set objFolder = CreateObject("Scripting.FileSystemObject")

    'obter a data de modificação
    objFolder = ObjFSO.GetFolder(strPasta).DateLastModified 

    For Each  objFolder In objfo 
    If (difference < objFolder) then

    objFSO.CopyFolder "D:\bkp", "D:\Teste",true
    Else 
    End If

    Next

    Obrigado a Todos

     

     


    Rkes, boa tarde.

    Segue o link...

    http://social.technet.microsoft.com/Forums/pt-BR/scriptadminpt/thread/7f2e55cc-fa56-41b1-842e-0462c25e1003


    Utilize o search so site, no forum possui um material excelente!
    Qualquer duvida poste!
    Se util classifique!

    Poste os resultados!.

    []s,

    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    quarta-feira, 9 de dezembro de 2009 18:42
  • Marcellus, Boa tarde

    Eu visualizei o link sugerido fiz alguns teste e ainda sim não consegui fazer rodar o script da forma que estou querendo.


    Utilizando o script que está no link ele não apresenta erros mas também não move arquivo algum sendo que a pasta que ele está buscando possui arquivo que deveriam ser movidos, segue abaixo o script que eu utilizei.

     

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set objFSO = CreateObject("Scripting.FileSystemObject")

    'Coloque aqui a pasta que será verificada
    strPasta = "D:\bkp"

    'Coloque aqui a pasta para a qual os arquivos serão copiados (Se quiser copiar, se nao quiser apague essa linha)
    strDest = "D:\Teste"

    'Coloque aqui os tipos de arquivos que serão copiados ou deletados, separados por ";"
    arrTipos = "log,jpg,mp3,avi,pdf,txt"

    ' NOME DO ARQUIVO DE LOG
    strLogFile = "c:\teste.txt"

    'quantidade de dias
    strData = 1

    arrTipos = split(arrTipos,";")
    Set objLogFile = objFSO.OpenTextFile(strLogFile, 8, True, 0)
    objLogFile.WriteLine  VBCRLF
    objLogFile.WriteLine "==================================================="
    objLogFile.WriteLine "ARQUIVOS MOVIDOS EM: " & now
    objLogFile.WriteLine "==================================================="

    If (objFSO.FolderExists(strPasta) = True) Then
       Set Folder = ObjFSO.GetFolder(strPasta)
       Set MyFiles = Folder.files 
          For Each tipo in arrTipos
             For Each MyFiles in Folder.Files
                If Right(myfiles.name,3) = tipo And DateDiff("d",myfiles.DateLastModified,now) > strData Then
                   objFSO.Copyfile strPasta & myfiles.name,strDest,True
                   objLogFile.WriteLine "Arquivo : "  & myfiles.name &  " copiado em : " & Now
                   objFSO.Deletefile strPasta & myfiles.name
                End If
             Next
          Next
    End if

    wscript.quit

    quarta-feira, 9 de dezembro de 2009 19:37
  • Marcellus, Boa tarde

    Eu visualizei o link sugerido fiz alguns teste e ainda sim não consegui fazer rodar o script da forma que estou querendo.


    Utilizando o script que está no link ele não apresenta erros mas também não move arquivo algum sendo que a pasta que ele está buscando possui arquivo que deveriam ser movidos, segue abaixo o script que eu utilizei.

     

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set objFSO = CreateObject("Scripting.FileSystemObject")

    'Coloque aqui a pasta que será verificada
    strPasta = "D:\bkp"

    'Coloque aqui a pasta para a qual os arquivos serão copiados (Se quiser copiar, se nao quiser apague essa linha)
    strDest = "D:\Teste"

    'Coloque aqui os tipos de arquivos que serão copiados ou deletados, separados por ";"
    arrTipos = "log,jpg,mp3,avi,pdf,txt"

    ' NOME DO ARQUIVO DE LOG
    strLogFile = "c:\teste.txt"

    'quantidade de dias
    strData = 1

    arrTipos = split(arrTipos,";")
    Set objLogFile = objFSO.OpenTextFile(strLogFile, 8, True, 0)
    objLogFile.WriteLine  VBCRLF
    objLogFile.WriteLine "==================================================="
    objLogFile.WriteLine "ARQUIVOS MOVIDOS EM: " & now
    objLogFile.WriteLine "==================================================="

    If (objFSO.FolderExists(strPasta) = True) Then
       Set Folder = ObjFSO.GetFolder(strPasta)
       Set MyFiles = Folder.files 
          For Each tipo in arrTipos
             For Each MyFiles in Folder.Files
                If Right(myfiles.name,3) = tipo And DateDiff("d",myfiles.DateLastModified,now) > strData Then
                   objFSO.Copyfile strPasta & myfiles.name,strDest,True
                   objLogFile.WriteLine "Arquivo : "  & myfiles.name &  " copiado em : " & Now
                   objFSO.Deletefile strPasta & myfiles.name
                End If
             Next
          Next
    End if

    wscript.quit


    Rkes, boa noite.

    Pode ter sido um erro de digitação.

    'Coloque aqui os tipos de arquivos que serão copiados ou deletados, separados por ";"
    arrTipos = "log,jpg,mp3,avi,pdf,txt"      <<----- Aqui vc deveria separa por ; nao por ,

    Veja se irá dar algun erro.
    Poste os resultados....

    []s,

    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    quarta-feira, 9 de dezembro de 2009 23:20