Saya memiliki struktur folder berikut:
- akar
- folder1
- folder2
- folder3
- 7za.exe
Saya ingin menjalankan alat baris perintah 7-zip untuk mengompres semua file folder1
ke file zip yang disebut folder1.zip
.
Jalankan berikut ini
7za.exe a -tzip folder1.zip folder1\\*.*
menghasilkan file zip seperti yang diharapkan. Namun, ketika saya membuka file zip, ada folder di dalamnya yang disebut folder1
, dan di dalamnya saya memiliki semua file yang ada di dalam folder itu. Saya tidak ingin nama folder ditambahkan ke folder zip, yaitu saya ingin menambahkan semua file dalam format file "Flat".
Saya juga tidak ingin menjalankan alat baris perintah secara rekursif untuk setiap file / folder individual.
Apakah ada saklar yang menyediakan fungsi ini?
cd
masuk ke folder1 dan7za.exe a -tzip ..\folder1.zip *.*
?Jawaban:
Dari file Bantuan 7-Zip :
Jadi perintah yang Anda inginkan adalah:
7za.exe a folder1.zip .\folder1\*
Juga, perhatikan penanganan wildcard 7-Zip. Itu tidak memperlakukan
*.*
sebagai "semua file" - itu berarti "semua file dengan titik dalam nama file." File ekstensi-kurang akan terlewatkan. Jika Anda benar-benar menginginkan semua file, gunakan*
saja.Akhirnya,
-tzip
parameter tidak diperlukan jika nama file arsip berakhir.zip
. 7-Zip cukup pintar untuk mengetahui format mana yang Anda inginkan dalam kasus tersebut. Ini hanya diperlukan saat Anda menginginkan ekstensi khusus (mis.7za.exe a -tzip foo.xpi <files>
Untuk Add-on Mozilla).sumber
Ini berhasil untuk saya
Pertimbangkan struktur folder seperti C: \ Parent \ SubFolder ..... Dan Anda ingin membuat parent.zip yang akan berisi semua file dan folder C: \ Parent tanpa folder induk [yaitu akan dimulai dari SubFolder .....]
Ini akan membuat Parent.zip di C: \ Parent
sumber
*.*
berarti "semua file" melainkan "semua file yang memiliki periode sebagai bagian dari nama file." Jadi jawaban ini sebenarnya akan menghilangkan file yang tidak memiliki ekstensi (ini tercantum dalam jawaban yang diterima).Hanya untuk memperluas jawaban yang diterima (saya tidak dapat menambahkan komentar di sana):
Di Linux menambahkan '*' tidak berfungsi untuk saya, jadi saya akhirnya membuat lebih banyak baris perintah verbose yang memberikan hasil yang diinginkan:
===========
penjelasan skrip:
Semoga bermanfaat bagi seseorang.
sumber
*
tanda kutip di (jika tidak shell akan memperluas ke file di tempat ini).Bagaimana dengan ini. misalnya Folder / subFolder1, Folder / subfolder2
* Nama arsip akan menjadi folder induk ..
Sederhana bukan?
sumber