Jak rekurencyjnie archiwizować folder, ale tylko pliki selektywne w systemie Windows?

1

Na przykład mam tę strukturę katalogów:

[C:\]
+ [Documents]
  + [Work] 
    + [Presentation]
      - Presentation A.pptx
      - Presentation B.pptx
      - Presentation C.pptx
      - Presentation D.pptx
    + [Account]
      - General Ledger.xlsx
      - Additional Report.xlsx
  + [Home]
    + [Kid's School]
      - School Enrollment List.docx
      - Weekly Newsletter 1.pdf
      - Weekly Newsletter 2.pdf
      - Weekly Newsletter 3.pdf
    + [Email Attachment]
      - Stores Weekly Discount.pdf
      - Teddy's Birthday Photo.jpg

Przypuszczam, że chcę tylko zip:

  • Prezentacja B.pptx
  • Raport dodatkowy.xlsx
  • Tygodniowy newsletter 3.pdf
  • Cały folder [Email Attachment]

Ale chcę zachować strukturę folderów, aby plik zip zawierał taką strukturę plików:

Documents\Work\Presentation\Presentation B.pptx
Documents\Work\Account\Additional Report.xlsx
Documents\Home\Kid's School\Weekly Newsletter 3.pdf
Documents\Home\Email Attachment\Stores Weekly Discount.pdf
Documents\Home\Email Attachment\Teddy's Birthday Photo.jpg

Jak to zrobić? Wszystko, co do tej pory robiłem, polega na kompresowaniu całego folderu dokumentów, a następnie selektywnym usuwaniu go w pliku zip. Jest to jednak bardzo czasochłonne, ponieważ prawdziwym przypadkiem są głębokie foldery, z setkami plików, a rozmiar plików jest duży.

Czy znasz jakiś rodzimy sposób lub jakikolwiek zewnętrzny program, który pozwala mi to zrobić? Myślę, że istnieje coś takiego jak Eksplorator Windows, aby skompresować folder, ale program zip przedstawił drzewo folderów z polem wyboru przed każdym plikiem i folderem, aby zaznaczyć, które pliki i foldery mają być zawarte w wynikowych plikach zip, jeśli są każdy taki program istnieje. Dzięki.

Chen Li Yong
źródło
1
Pracowałby program terminalowy, który pozwala dodawać tylko pliki z określonej listy. wiem tar czy mogę to zrobić, jestem pewien, że istnieje program terminala ZIP dla okien, może nowszy niż te stare pkzip? Wypróbuj wyszukiwanie internetowe w poszukiwaniu zipu terminala systemu Windows?
Xen2050
Dobra, szukam tego. :)
Chen Li Yong

Odpowiedzi:

1

7-zip Powinien być w stanie użyć listy plików do zip i może korzystać z własnej .7z format lub regularne .zip format.

Ta strona opisuje, jak powinno działać, używa @file lista funkcji plików:

Korzystanie z plików list

Pliki list to pliki zawierające listę jednego lub więcej plików i / lub   katalogi oddzielone nowymi symbolami linii. Zarówno 7-Zip, jak i IZArc   narzędzia wiersza poleceń mogą używać plików list do przetwarzania plików i   katalogi. 7-Zip domyślnie używa kodowania UTF-8 dla plików list, ale   kodowanie można zmienić w linii poleceń za pomocą „-scs”   przełącznik w razie potrzeby (zobacz sekcję dotyczącą wersji wiersza poleceń w 7-zip.chm   w celu uzyskania dalszych informacji).

Składnia wiersza poleceń do kompresji plików i / lub katalogów za pomocą   plik listy:

Dla 7-Zip:

7za a -tzip "C:\Your Folder\yourarchive.zip @"C:\Your Folder\yourlistfile.txt"
  • 7za - plik wykonywalny linii poleceń 7-Zip.
  • a - dodaj pliki do polecenia archiwum.
  • -tzip - ustaw typ archiwum na plik zip (opcjonalnie, chyba że używasz innego formatu kompresji).

Za pomocą cygwin a następnie użyj narzędzi Linuksa, takich jak tar powinien działać, ale to zdecydowanie przesadne i niepotrzebne tylko dla programu zip. Jest parę tar dla Windowsa programy, ale trzymałbym się 7zip.

Innym pomysłem może być osobny folder, który ma tylko spinki do mankietów do żądanych plików, zachowując oryginalną strukturę folderów. Stworzyłoby to „lustro” oryginalnych plików, które są zawsze identyczne z ich połączonymi oryginałami. Następnie wystarczy zarchiwizować wszystkie pliki w tym oddzielnym folderze, o ile zawiera rzeczywiste pliki docelowe łącza i nie tylko linki.

Xen2050
źródło
Czekać. Co rozumiesz przez linki?
Chen Li Yong
Linki do plików / linki symboliczne, dowiązania symboliczne, takie jak „miękkie” lub „twarde” linki. „Plikopodobna” rzecz, która wskazuje inny prawdziwy plik gdzieś indziej. To jest przyzwoita strona, która ma pewne instrukcje, nie wiesz, na której wersji systemu Windows się znajdujesz, ale te powinien pracuj na wszystko, co aktualne: Korzystanie z dowiązań symbolicznych w systemie Windows Vista . Wikipedia ma coś do powiedzenia Łącza symboliczne NTFS zbyt
Xen2050
Rozumiem. Rozumiem co masz na myśli. Plik zostanie zaktualizowany, ponieważ oryginalny plik zostanie zaktualizowany. Nadal jednak istnieje problem. Plik, który należy skompresować, najprawdopodobniej będzie inny za każdym razem. Może dzisiaj chcę skompresować plik document\A, data\finance\B, i photo\C. Następnym razem mogę potrzebować skompresować plik music\pop\X, presentation\monday\Y, i project\java\Z. To sprawia, że ​​budowanie pustych struktur folderów i sprawia, że ​​miękkie łącza stają się niepraktyczne i dlatego naprawdę potrzebuję selektywnego programu zip. Ale dziękuję za opracowanie. :)
Chen Li Yong
@ChenLiYong Myślę, że mam rozwiązanie wykorzystujące 7-zip, które powinno działać z listą tekstową plików do zip. Wyedytuję odpowiedź, aby ją dodać :-)
Xen2050