Скопируйте большое количество файлов, но исключите определенные подпапки в Windows

14

Я хочу сделать резервную копию моей рабочей папки, которая в основном содержится в структуре папок, такой как:

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

Мне нужно скопировать все проекты, но исключить папку node_modules в каждом проекте. Есть ли простой способ сделать это оптом? Поскольку у меня есть большое количество проектов, чтобы пройти.

Работает на Windows 8.1

Doidgey
источник
Посмотрите на этот вопрос: superuser.com/questions/359031/… . В самом вопросе есть твой ответ.
Ангус

Ответы:

12

Мне нужно скопировать все проекты, но исключить папку node_modules

Вы можете использовать xcopyвместе с excludeопцией:

xcopy www backup /exclude:except.txt
  • except.txt содержит список файлов каталогов, которые должны быть исключены.

except.txt:

node_modules

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

  • Каждый из файлов может содержать одно или несколько полных или частичных путей, которые необходимо исключить.
  • Если какой-либо из них соответствует какой-либо части абсолютного пути файла SOURCE, этот файл будет исключен.
  • Например, указание строки типа \obj\или .objисключит все файлы в каталоге objили все файлы с .objрасширением соответственно.

Source xcopy - Скопируйте файлы и / или деревья каталогов в другую папку.


дальнейшее чтение

ДэвидПостилл
источник
Круто, спасибо, я попробую. Я также нашел это: robocopy SOURCE DESTINATION /mir /xd FOLDER_TO_EXCLUDE- Я полагаю, это может работать тоже?
Доиджи
Вполне вероятно. Я не знаю, что
такое robocopy
Дайте robocopyпопробовать - он был разработан , чтобы поддерживать те же самые параметры командной строки , как , xcopyно имеет множество улучшений - поддержка длинных пути, буферизацию, юникод, он сохраняет временные метки и т.д. и т.п. Robocopyявляется частью Windows , начиная с Vista, устанавливаемой на XP.
user1016274 15.07.15
Эта команда не копировала подпапки из моего источника, только файлы в этой папке.
Qwerty
@DavidPostill Должен ли я серьезно поместить каталоги, которые я хочу исключить, в текстовый файл, а затем сослаться на этот текстовый файл в команде? Разве я не могу прямо сказать, какие каталоги я хочу исключить? Я думаю, robocopyчто лучше.
Шаян
9

Спасибо @DavidPostill за его ответ. Это сработало. Однако мне также удалось заставить работать робокопию. Для тех, кому это может помочь, команда была:

robocopy SOURCE DEST /mir /xd node_modules

Source - папка для копирования, а dest - место назначения. И прямо в конце у меня есть node_modules в качестве папки, которую я хочу исключить.

Doidgey
источник
3
Добрый день robocopy /mir. Очень мощный переключатель, который может принести много пользы, но просто знайте, что делает этот переключатель, прежде чем использовать его. Он будет синхронизировать два каталога, включая удаление элементов, если они не существуют в исходном каталоге.
Адам Плохер
Спасибо огромное! Это очень хорошо работает для синхронизации папки «Мои документы» с Dropbox, но исключая папки node_modules, поскольку они занимают так много места
Бен Габлер,
1
@AdamPlocher Ваш комментарий спас меня от потери данных. Я использовал robocopy в качестве замены для перемещения папок, мне не пришло в голову, что это удалит файлы из целевой папки. К счастью, я смог восстановить резервную копию 4 дня назад, так что спасибо.
Hay