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:

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).