Copie um grande número de arquivos, mas exclua determinadas subpastas no Windows

14

Quero fazer backup da minha pasta de trabalho, que está principalmente contida em uma estrutura de pastas, como:

www
    - project 1
        - assets
        - node_modules
    - project 1
        - assets
        - node_modules
    - project 1
        - assets
        - node_modules

Eu preciso copiar todos os projetos, mas excluir a pasta node_modules dentro de cada projeto. Existe uma maneira fácil de fazer isso em massa? Como tenho grandes quantidades de projetos para realizar.

Executando no Windows 8.1

Doidgey
fonte
Veja esta pergunta: superuser.com/questions/359031/… . Na pergunta em si é a sua resposta.
angus

Respostas:

12

Preciso copiar todos os projetos, mas excluir a pasta node_modules

Você pode usar xcopyjunto com a excludeopção:

xcopy www backup /exclude:except.txt
  • except.txt contém a lista de arquivos de diretórios a serem excluídos.

except.txt:

node_modules

/EXCLUDE:file1[+file2][+file3]...

  • Os arquivos podem conter um ou mais nomes de caminho completos ou parciais a serem excluídos.
  • Quando qualquer um desses itens corresponder a qualquer parte do caminho absoluto de um arquivo SOURCE, esse arquivo será excluído.
  • Por exemplo, especificar uma sequência como \obj\ou .objexcluirá todos os arquivos abaixo do diretório objou todos os arquivos com a .objextensão, respectivamente.

Origem xcopy - Copie arquivos e / ou árvores de diretório para outra pasta.


Leitura adicional

DavidPostill
fonte
Incrível, obrigado, vou tentar. Eu também encontrei o seguinte: robocopy SOURCE DESTINATION /mir /xd FOLDER_TO_EXCLUDE- Suponho que poderia funcionar também?
Doidgey
Muito provável. Porém, eu não sei robocopy: / Por favor, não esqueça de aceitar minha resposta;)
DavidPostill
Faça robocopyuma tentativa - ele foi projetado para oferecer suporte às mesmas opções de comando, xcopymas apresenta muitas melhorias - suporte a longo caminho, buffer, unicode, preserva registros de data e hora etc. etc. Robocopyfaz parte do Windows desde o Vista, instalável no XP.
user1016274
Este comando não copiou nenhuma subpasta da minha fonte, apenas arquivos dentro dessa pasta.
Qwerty
@DavidPostill Tenho que colocar seriamente os diretórios que desejo excluir em um arquivo de texto e depois fazer referência a esse arquivo de texto no comando? Não posso simplesmente dizer diretamente quais diretórios quero excluir? Eu acho que robocopyé melhor.
Shayan
9

Obrigado a @DavidPostill por sua resposta. Funcionou um prazer. No entanto, também consegui fazer o robocopy funcionar. Para aqueles a quem poderia ajudar, o comando era:

robocopy SOURCE DEST /mir /xd node_modules

Origem sendo a pasta para copiar e destino sendo o destino. E, no final, tenho node_modules como a pasta que quero excluir.

Doidgey
fonte
3
Bom velho robocopy /mir. Switch muito poderoso que pode fazer muito bem, mas esteja ciente do que esse switch faz antes de usá-lo. Ele sincronizará dois diretórios, incluindo a exclusão de itens se eles não existirem no diretório de origem.
Adam Plocher
Muito obrigado! Isso funciona muito bem para sincronizar minha pasta Documents com o Dropbox, mas excluindo as pastas node_modules, pois elas ocupam muito espaço.
Ben Gubler
1
@AdamPlocher Seu comentário me salvou da perda de dados. Eu tenho usado o robocopy como um substituto para mover pastas; não me ocorreu que ele excluiria arquivos da pasta de destino. Felizmente, consegui recuperar um backup de 4 dias atrás, então obrigado.
Hay