Apakah ada cara untuk mengkompres folder secara individual menggunakan 7zip pada banyak koleksi folder?


0

Bagaimana 260 folder dapat di-zip secara individual menggunakan 7zip dengan satu perintah?

Orang yang semula mengajukan pertanyaan ini secara sukarela menghapus posting. Karena itu adalah tugas yang menarik, saya membangkitkan pertanyaan dan mengembangkan solusi, yang diposting di bawah ini sebagai jawaban.

Jawaban:


1

Ini berfungsi untuk file yang bukan sub-folder di folder induk http://dropcanvas.com/w7u6a/3

http://dropcanvas.com/w7u6a/3

@echo off
cd /d %~dp0
rem 7z.exe path
set sevenzip=
if "%sevenzip%"=="" if exist "%ProgramFiles(x86)%\7-zip\7z.exe" set sevenzip=%ProgramFiles(x86)%\7-zip\7z.exe
if "%sevenzip%"=="" if exist "%ProgramFiles%\7-zip\7z.exe" set sevenzip=%ProgramFiles%\7-zip\7z.exe
if "%sevenzip%"=="" echo 7-zip not found&pause&exit
set extension=.mp4
for %%a in (*%extension%) do "%sevenzip%" a "%%~na.7z" "%%a"
pause
[/CODE]

1

Tulis seperti ini dan tidak akan ada masalah.

7z a  -t7z "c:\users\user\desktop\folder\%%G.7z" c:\users\user\desktop\folder\%%G -r

0

Berikut ini skrip untuk menyelesaikannya (abaikan komentar "//", yang ditampilkan untuk penjelasan):

@echo off
for /D %%G IN (*) DO (
    //This is my path to 7-Zip, it could be different for you
cd c:\program files\7-zip
    //This is the dir of the parent folder in which you want the subfolders to be zipped individually.
7z a  -t7z c:\users\user\desktop\folder\%%G.7z c:\users\user\desktop\folder\%%G -r )
pause

-t7z adalah format arsip .7z yang digunakan.

Untuk menggunakan skrip:

Cara penulisan skrip ini mengasumsikan bahwa Anda memiliki folder induk dengan sub direktori yang ingin Anda zip satu per satu (setiap sub direktori dalam arsip zip-nya sendiri).

Representasi Visual:

----Parent Directory
--------Sub Directory (to be zipped)
--------Sub Directory (to be zipped)
--------Sub Directory (to be zipped)
--------Sub Directory (to be zipped)
--------Sub Directory (to be zipped)

Lers mengatakan bahwa sub direktori yang Anda ingin zip berada di C:\Users\Foo\Documents. Jadi akan terlihat seperti:

----C:\Users\Foo\Documents
--------Foo1
--------Foo2
--------Foo3
--------Foo4
--------Foo5

Jadi dalam skrip yang saya berikan, Anda akan mengedit baris:

7z a  -t7z c:\users\user\desktop\folder\%%G.7z c:\users\user\desktop\folder\%%G -r )

untuk mengatakan:

7z a  -t7z c:\Users\Foo\Documents\%%G.7z c:\Users\Foo\Documents\%%G -r )

Jadi sekarang kita harus mengatur lokasi 7z.exe kita sehingga skrip dapat berjalan dengan baik.

CATATAN: Anda tidak harus melakukan ini jika Anda berhasil mengatur Variabel Lingkungan untuk 7z.exe. Bagi mereka yang berhasil, hilangkan garis cd c:\program files\7-zip. Untuk menguji apakah itu berfungsi atau tidak, cukup buka cmd.exedan ketik 7z, jika Anda mendapatkan daftar opsi dan parameter, maka itu berhasil dan jika tidak, lanjutkan dengan cdperintah.

Temukan tempat Anda menginstal 7-Zip dan salin direktori dan tambahkan setelah cd. Dalam contoh, itu akan dipasang di C:\Program Files\7-Zip. Jadi skrip yang sudah selesai akan terlihat seperti ini:

@echo off
for /D %%G IN (*) DO (
cd C:\Program Files\7-Zip
7z a  -t7z c:\Users\Foo\Documents\%%G.7z c:\Users\Foo\Documents\%%G -r )
pause

sekarang menyimpan script sebagai .batekstensi file, jika menggunakan notepad Anda harus mengubah Save as Typeke All Files (".").

Jika ditulis dengan benar, hasil akhirnya akan terlihat seperti ini: Hasil

CATATAN: Jika Anda memiliki folder yang memiliki spasi, itu tidak akan menampilkan seluruh nama, tetapi di mana kata pertama sebelum spasi. Mis: Foo 1akan diarsipkan sebagai Foo.7z(no bueno). Hal yang sama dengan lebih dari satu folder dengan kata pertama Foodan Foo 1, mereka berdua mengalami masalah terakhir yang saya jelaskan dan ketika Foopertama kali diarsipkan, arsip untuk Foo 1akan mencoba menimpa Fookarena mereka memiliki nama yang sama. Jika Anda dapat menemukan pekerjaan di sekitar ini, Kudos untuk Anda!

Anda mungkin juga ingin mencoba versi Tyler dari skrip saya, tentu saja, skripnya lebih "kompatibel secara universal" dan melibatkan memiliki 7z.exesebagai EV (Variabel Lingkungan).


Bisakah Anda menambahkan kalimat pada jawaban tentang cara menggunakan skrip?
fixer1234

Diperbarui untukmu :)
xR34P3Rx

Pekerjaan yang baik. Saya sudah mengangkat pertanyaan dan jawaban Anda.
fixer1234

Anda perlu mengutip sekitar C:\Program Files\7-Zipatau script akan cd ke c: \ program

Itu tidak pernah terjadi pada saya. Apakah kamu sudah mencobanya?
xR34P3Rx
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.