синтаксис до архівування окремих папок


0

чи може хтось змінити / відредагувати цю пакетну команду, щоб вона перейшла до кореневої каталогу кожної папки, перш ніж її заархівувати.

для / d %% X в (*) do "c: \ Program Files \ 7-Zip \ 7z.exe" a "%% X.zip" "%% X \"

в основному у мене є багато папок, які я хочу архівувати окремо. але команда batch вище архівує окрему папку в кореневій / головній директорії. тому їх вилучення спричинить подвійну папку.

мені це потрібно, щоб бути таким. головний каталог з багатьма папками, потім перейдіть до окремих папок, а потім заархівуйте їх. сподіваюся, що хтось допоможе.

Відповіді:


0

Що ж, ваш опис бажаних результатів не зовсім зрозумілий. Нижче представлений гіпотетичний макет дерева директорій.

C:\TopDir
├───Dir1
│   └───[Dir1 files]
│
├───Dir2
│   ├───SubDir2.1
│   │   └───[files]
│   │
│   ├───SubDir2.2
│   │   └───[files]
│   │
│   ├───SubDir2.3
│   │   └───[files]
│   │
│   └───[Dir2 files]
│
├───More Dirs...
│  
└───[TopDir files]

Нижче описано, що у вас є після запуску відповідної команди (зауважте, що ви не видаляєте жодного з архівів, які ви архівували, тому вони все ще залишаються). У вас є маса файлів .zip з процесу архівації у кореневій папці (я розумію, що ви не хочете).

C:\TopDir
├───Dir1
│   └───[Dir1 files]
│
├───Dir2
│   ├───SubDir2.1
│   │   └───[files]
│   │
│   ├───SubDir2.2
│   │   └───[files]
│   │
│   ├───SubDir2.3
│   │   └───[files]
│   │
│   └───[Dir2 files]
│
├───More Dirs...
│
├───Dir1.zip
├───Dir2.zip
├───Dirx.zip...
└───[TopDir files]

Якщо ви витягаєте ці Zip-файли з цієї самої папки (коренева папка), вони витягуються в існуючу структуру каталогів та повідомлять вас, коли вони стикаються із ситуацією перезапису файлів. Це не створить "подвійну папку". Я припускаю, що з подвійною папкою ви маєте на увазі структуру такого типу:

C:\TopDir
├───Dir1
│   ├───[Dir1 files]
│   └───Dir1
│       └───[Dir1 files]

Тепер, якщо ви перемістите поштові файли у відповідні папки та розпакуйте їх, тоді ви отримаєте подвійні папки.

Ось команда, яка повинна робити те, що я думаю, що ви хочете - помістіть zip-файл вмісту кожної папки у цю папку:

for /d %%x in (*) do cd %%x && 7z a -tzip -r %%x.zip && cd..

Ця -tzipопція гарантує, що файл .zip-файл, .7z - zip-формат за замовчуванням 7zip. Оскільки це знаходиться в пакетному файлі, ви також можете його сконструювати так:

for /d %%x in (*) do (
  cd %%x
  7z a -tzip -r %%x.zip
  cd..
)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.