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.exe
dan ketik 7z
, jika Anda mendapatkan daftar opsi dan parameter, maka itu berhasil dan jika tidak, lanjutkan dengan cd
perintah.
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 .bat
ekstensi file, jika menggunakan notepad Anda harus mengubah Save as Type
ke 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 1
akan diarsipkan sebagai Foo.7z
(no bueno). Hal yang sama dengan lebih dari satu folder dengan kata pertama Foo
dan Foo 1
, mereka berdua mengalami masalah terakhir yang saya jelaskan dan ketika Foo
pertama kali diarsipkan, arsip untuk Foo 1
akan mencoba menimpa Foo
karena 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.exe
sebagai EV (Variabel Lingkungan).