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


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


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.