none
Servidor de Arquivos: clonar diretorio copiando arquivos baseado em filtros RRS feed

  • Pergunta

  • Saudações!

    Estou em um projeto que demanda a seguinte atividade:

    Temos uma pasta e precisamos "clonar" toda esta estrutura de pastas, porém com conteúdo baseado em filtros de data e tipo de arquivos.

    Digamos que temos a seguinte pasta:

    c:\Diretorio\Subdiretorio

    Preciso ter algumas versões desta pasta, porém o conteúdo varia de acordo com alguns filtros, por exemplo:

    c:\Diretorio\Arquivo - contendo as mesmas subpastas do diretório "Subdiretorio", porém contendo apenas os arquivos mais antigos que 365 dias.

    c:\Diretorio\Videos - contendo as mesmas subpastas do diretório "Subdiretório", porém contendo apenas os arquivos de video, baseado em extensões predefinidas.

    Como são 6 os filtros que serão aplicados a dezenas de "Subdiretórios", manualmente será muito custoso.

    Alguém conhece ou dá alguma dica onde consigo uma solução automatizada, como uma ferramenta, ou um script com xcopy, robocopy, powershell? Algo que possa me ajudar nesta tarefa?

    Desde já agradeço.

    Fabio Martins

     

    quinta-feira, 10 de dezembro de 2015 21:28

Todas as Respostas

  • Olá Fabio, tudo joia?

    Para clonar um diretório, o robocopy é o melhor (na minha opinião). Dependendo do tipo de filtro que você quer criar (por exemplo, arquivos com mais de 365 dias) ele mesmo pode fazer isso. Entretanto, se você não conseguir aplicar todos os filtros que precisa, pode utilizar PowerShell em combinação com o Robocopy. Por exemplo:

    #Essa linha robocopy clona um diretório robocopy Source Destination *.* /s /e /sec /mir /R:1 /W:5 #Essa combinação PowerShell e Robocopy seleciona todos os arquivos maiores que a data de hoje menos 365 $files = Get-ChildItem -Recurse | where {$_.CreationTime -lt (get-date).AddDays(-365).ToString("MM/dd/yyy")} robocopy $files Destination *.* /s /e /sec /mir /R:1 /W:5

    #Aqui, seleciona somente arquivos *.txt

    $files = Get-ChildItem -Recurse -include *.txt

    Com PowerShell, você pode aplicar quase qualquer tipo de filtro e depois clonar com robocopy. Qualquer dúvida, avise.

    Se a resposta fornecida nessa thread ajudou na sua solução, não esqueça de marcar como resposta!

    Abraço,
    Gustavo Zimmermann Montesdioca - MTAC, MCT
    Blog: www.gm9.com.br
    sexta-feira, 11 de dezembro de 2015 13:54