none
Copiar pasta com base na data de modificação RRS feed

  • Pergunta

  • Olá,

     

    Ainda sou leigo quando o assunto é script e gostaria da ajuda dos senhores.

    Preciso fazer uma cópia agendada de várias pastas localizadas em um computador remoto. Preciso de um script que verifique a data de modificação e copie as pastas criadas nos últimos 7 dias. Depois de copiadas exclua do computador remoto.

    Eu tentei fazer através do comando xcopy, utilizando o atributo de arquivamento, mas não deu certo.
    quinta-feira, 10 de maio de 2007 14:55

Respostas

  • Olá,

    com o Windows Powershell isso fica muito fácil. Veja:

    dir \\teste\c$ |
    where {$_.datelastmodified -gt (get-date).adddays(-7)} |
    foreach {copy $_ \\server\share}

    mais no meu blog: http://viniciuscanto.blogspot.com


    []s,

    Vinicius Canto
    MVP Scripting

    sábado, 12 de maio de 2007 18:59
    Moderador

Todas as Respostas

  • Olá,

    com o Windows Powershell isso fica muito fácil. Veja:

    dir \\teste\c$ |
    where {$_.datelastmodified -gt (get-date).adddays(-7)} |
    foreach {copy $_ \\server\share}

    mais no meu blog: http://viniciuscanto.blogspot.com


    []s,

    Vinicius Canto
    MVP Scripting

    sábado, 12 de maio de 2007 18:59
    Moderador
  • Vinicius,

     

    Veja se pode me ajudar:

     

    Criei um arquivo cftv.ps1 com o seguinte scritp dentro dele para teste:

     

    dir c:\tools\ |
      where {$_.datelastmodified -gt (get-date).adddays(-7)} |
      foreach {copy $_ c:\compart}

    Estou executando este arquivo a partir do Powershell da seguinte forma: c:\cftv.ps1.

    Não dá nenhuma mensagem de erro porém não move nenhuma pasta nem arquivo.

    Ou seja, não acontece nada!

     

    O que estou fazendo de errado?

     

    Obrigado...

    quarta-feira, 16 de maio de 2007 18:03
  • Desculpe, o erro foi meu. O nome certo da propriedade é LastWriteTime, e não DateLastModified. Não sei de onde confundi isso...

    Você pode descobrir mais informações sobre quais propriedades pode usar no where se colocar um | get-member no final do seu comando. Duas úteis são LastAccessTime e CreationTime, além da LastWriteTime que eu citei acima.


    []s,

    Vinicius Canto <scripterbr_at_gmail_dot_com>
    MVP Visual Developer - Scripting
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Blog sobre scripting: http://viniciuscanto.blogspot.com

    domingo, 20 de maio de 2007 13:56
    Moderador