Skopiuj dużą liczbę plików, ale wyklucz niektóre podfoldery w systemie Windows

14

Chcę wykonać kopię zapasową mojego folderu roboczego, który jest głównie zawarty w strukturze folderów, takich jak:

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

Muszę skopiować wszystkie projekty, ale wykluczam folder node_modules w każdym projekcie. Czy istnieje prosty sposób, aby to zrobić zbiorczo? Ponieważ mam wiele projektów do przejścia.

Działa w systemie Windows 8.1

Doidgey
źródło
Spójrz na to pytanie: superuser.com/questions/359031/... . W samym pytaniu jest twoja odpowiedź.
angus

Odpowiedzi:

12

Muszę skopiować wszystkie projekty, ale wykluczam folder node_modules

Możesz używać xcopyrazem z excludeopcją:

xcopy www backup /exclude:except.txt
  • except.txt zawiera listę plików katalogów do wykluczenia.

oprócz.txt:

node_modules

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

  • Każdy z plików może zawierać jedną lub więcej pełnych lub częściowych ścieżek do wykluczenia.
  • Jeśli którykolwiek z nich pasuje do dowolnej części bezwzględnej ścieżki do pliku SOURCE, plik ten zostanie wykluczony.
  • Na przykład określenie ciągu typu \obj\lub .objspowoduje wykluczenie odpowiednio wszystkich plików pod katalogiem objlub wszystkich plików z .objrozszerzeniem.

Źródło xcopy - Skopiuj pliki i / lub drzewa katalogów do innego folderu.


Dalsza lektura

DavidPostill
źródło
Wspaniale, dziękuję, spróbuję. Znalazłem też: robocopy SOURCE DESTINATION /mir /xd FOLDER_TO_EXCLUDE- Zakładam, że to też może działać?
Doidgey,
Całkiem prawdopodobne. Jednak nie znam robocopy: / Proszę nie zapomnij przyjąć mojej odpowiedzi;)
DavidPostill
Daj robocopyszansę - został zaprojektowany, aby wspierać te same opcje polecenia jak xcopyale posiada wiele usprawnień - długą ścieżkę wsparcia, buforowanie, Unicode, zachowuje znaczniki czasu itd. Itd. RobocopyJest częścią systemu Windows Vista, ponieważ do zainstalowania na XP.
user1016274,
To polecenie nie skopiowało żadnego podfolderu z mojego źródła, tylko pliki w tym folderze.
Qwerty,
@DavidPostill Czy poważnie muszę umieścić katalogi, które chcę wykluczyć, w pliku tekstowym, a następnie odwołać się do tego pliku tekstowego w poleceniu? Czy nie mogę po prostu powiedzieć bezpośrednio, które katalogi chcę wykluczyć? Myślę, że robocopyjest lepiej.
Shayan
9

Dzięki @DavidPostill za odpowiedź. Udało się. Udało mi się jednak również uruchomić robocopy. Dla tych, którym może pomóc, polecenie brzmiało:

robocopy SOURCE DEST /mir /xd node_modules

Źródło jest folderem do skopiowania, a dest jest miejscem docelowym. Na samym końcu mam folder node_modules jako folder, który chcę wykluczyć.

Doidgey
źródło
3
Good ol ' robocopy /mir. Bardzo potężny przełącznik, który może wiele zdziałać, ale pamiętaj, co robi ten przełącznik, zanim zaczniesz go używać. Zsynchronizuje dwa katalogi, w tym usunie elementy, jeśli nie istnieją w katalogu źródłowym.
Adam Plocher
Dziękuję bardzo! Działa to bardzo dobrze do synchronizacji mojego folderu Dokumenty z Dropbox, ale z wyłączeniem folderów node_modules, ponieważ zajmują tak dużo miejsca
Ben Gubler
1
@AdamPlocher Twój komentarz uratował mnie przed utratą danych. Używam robocopy jako zamiennika do przenoszenia folderów, nie przyszło mi do głowy, że usunie pliki z folderu docelowego. Na szczęście udało mi się odzyskać kopię zapasową sprzed 4 dni, więc dziękuję.
Hay