Di Windows Anda dapat zip beberapa file dengan
klik kanan → Kirim ke → folder Terkompresi (zip)
Dan unzip dengan mengklik dua kali pada .zip
file dan mengekstrak file.
Apakah ada cara untuk menerapkan kemampuan itu dari skrip (file .bat) tanpa perlu menginstal perangkat lunak pihak ketiga ?
windows
batch-file
zip
Roee Gavirel
sumber
sumber
Jawaban:
Kembali pada tahun 2013, itu tidak mungkin. Microsoft tidak menyediakan executable untuk ini.
Lihat tautan ini untuk beberapa cara VBS untuk melakukan ini. /superuser/201371/create-zip-folder-from-the-command-line-windows
Dari Windows 8 pada, .NET Framework 4.5 diinstal secara default, dengan System.IO.Compression.ZipArchive dan PowerShell tersedia, orang dapat menulis skrip untuk mencapai ini, lihat https://stackoverflow.com/a/26843122/71312
sumber
Untuk memperluas pada solusi PowerShell Steven Penny, Anda dapat memasukkannya ke dalam file batch dengan memanggil powershell.exe seperti ini:
Seperti yang dikatakan Ivan Shilo, ini tidak akan berfungsi dengan PowerShell 2, membutuhkan PowerShell 3 atau lebih tinggi dan .NET Framework 4.
sumber
'.'
, misalnya:powershell.exe -nologo -noprofile -command "& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('foo.zip', '.'); }"
& {}
? Dengan PS5 ini bekerja juga:powershell.exe -nologo -noprofile -command "Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('foo.zip', '.');"
Pada .NET 4.5 , PowerShell dapat melakukan ini:
Untuk dua baris terakhir,
bar
danfoo
dapat diganti dengan nama yang Anda inginkan foldernya, atau apa pun namanya dari folder yang sudah ada sebelumnya.foo.zip
dalam kedua kasus bertindak sebagai file zip untuk menyimpan sebagai atau untuk unzip.sumber
Jika Anda telah menginstal Java, Anda dapat mengompres ke arsip ZIP menggunakan
jar
perintah:sumber
PowerShell 5.0
Dari
Microsoft.PowerShell.Archive
Anda dapat menggunakan:Compress-Archive
Expand-Archive
Misalnya:
Buat
result.zip
dari seluruhTest
folder:Ekstrak konten
result.zip
dalamTest
folder yang ditentukan :sumber
powershell Compress-Archive -Path C:\SomeFile.ext -DestinationPath C:\SomeFile.zip
langsung dari baris perintah tanpa perlu membuat skrip (dengan asumsi Anda telah menginstal Powershell v5, yang dapat Anda lakukan setidaknya kembali ke Windows 7).Ini bukan ZIP, tetapi satu-satunya cara untuk kompres file menggunakan alat Windows adalah:
Untuk mendekompres:
Contoh lanjutan (dari ss64.com):
Informasi lebih lanjut: makecab , perluas , makecab menggunakan lanjutan
sumber
Menggunakan 7-Zip:
Zip : Anda memiliki folder
foo
, dan ingin meng-zipnyamyzip.zip
Unzip : Anda ingin unzip (
myzip.zip
) ke direktori saat ini (./
)sumber
without the need to install any 3rd party
Saya sudah mencari untuk menjawab pertanyaan yang tepat ini dan dari penelitian saya, tanggapan DiryBoy tampaknya akurat.
Saya menemukan program compact.exe kompres file tetapi tidak untuk membuat file yang sangat terkompresi (atau kumpulan file). Ini mirip dengan opsi yang Anda dapatkan saat mengklik kanan huruf drive atau partisi di Windows. Anda mendapatkan opsi untuk melakukan pembersihan (menghapus file temp, dll) serta mengkompres file. File yang dikompresi masih dapat diakses tetapi hanya dikompres untuk membuat ruang pada drive yang ruangnya rendah.
Saya juga menemukan compress.exe yang kebetulan saya miliki di komputer saya. Ini tidak asli pada kebanyakan mesin windows dan merupakan bagian dari kit sumber daya 2003. Itu memang membuat file zip semacam tetapi benar-benar lebih mirip dengan file dari disk setup windows (memiliki garis bawah sebagai karakter terakhir dari ekstensi file atau nama). Dan perintah extract.exe mengekstrak file-file itu.
Namun, mantra adalah, jika itu dapat dilakukan secara native melalui GUI maka ada kemungkinan cara untuk melakukannya melalui batch, .vbs, atau beberapa jenis skrip lain dalam baris perintah. Karena windows memiliki opsi 'kirim ke' untuk membuat file zip, saya tahu harus ada cara untuk melakukannya melalui baris perintah dan saya menemukan beberapa opsi.
Berikut ini adalah tautan bagus yang menunjukkan bagaimana cara zip file menggunakan perintah windows asli.
/superuser/110991/can-you-zip-a-file-from-the-command-prompt-using-only-windows-built-in-capabili
Saya mengujinya dengan direktori yang berisi beberapa file dan folder bersarang dan itu berfungsi dengan baik. Cukup ikuti format baris perintah.
Ada juga cara untuk membuka zip file melalui command line yang saya temukan juga. Salah satu caranya, cukup buka jendela explorer yang menunjukkan konten file yang di-zip. Beberapa dari ini juga menggunakan Java yang tidak selalu asli ke windows tetapi sangat umum sehingga hampir tampak begitu.
/superuser/149489/does-windows-7-have-unzip-at-the-command-line-installed-by-default
Bagaimana cara unzip file menggunakan baris perintah?
sumber
Anda dapat menggunakan skrip VBScript yang dibungkus dengan file BAT. Kode ini berfungsi pada PATH relatif.
Tidak ada kebutuhan untuk alat pihak ketiga atau dependensi. Cukup atur
SOURCEDIR
danOUTPUTZIP
.Nama file: ZipUp.bat
Contoh penggunaan
Atau, Anda dapat menentukan parameter file ini dengan mengganti baris
CScript _zipup.vbs %SOURCEDIR% %OUTPUTZIP%
denganCScript _zipup.vbs %1 %2
, dalam hal ini bahkan dapat lebih mudah dipanggil hanya dengan meneleponCALL ZipUp C:\Source\Dir C:\Archive.zip
.sumber
Saya punya masalah dengan semua solusi ini.
Mereka tidak persis sama, dan mereka semua membuat file yang memiliki sedikit perbedaan ukuran dibandingkan dengan
RMB --> send to --> compressed (zipped) folder
ketika dibuat dari folder sumber yang sama. Perbedaan ukuran terdekat yang saya miliki adalah perbedaan 300 KB (skrip> manual), dibuat dengan:(Perhatikan -CompressionLevel . Ada tiga kemungkinan nilai : Tercepat, NoCompression & Optimal, (Default: Optimal))
Saya ingin membuat file .bat yang secara otomatis akan mengompres folder plugin WordPress yang saya kerjakan, menjadi arsip .zip, sehingga saya dapat mengunggahnya ke situs WordPress dan menguji plugin tersebut.
Tetapi untuk beberapa alasan itu tidak bekerja dengan kompresi otomatis ini, tetapi tidak bekerja dengan kompresi RMB manual, penyihir yang saya temukan benar-benar aneh.
Dan file .zip yang dihasilkan skrip benar-benar memecah plugin WordPress ke titik di mana mereka tidak dapat diaktifkan, dan mereka juga tidak dapat dihapus dari dalam WordPress. Saya harus SSH ke "sisi belakang" server dan menghapus file plugin yang diunggah secara manual. Sementara file yang dihasilkan secara manual RMB bekerja secara normal.
sumber
Jika Anda perlu melakukan ini sebagai bagian dari skrip maka cara terbaik adalah menggunakan Java. Dengan asumsi direktori bin berada di jalur Anda (dalam kebanyakan kasus), Anda dapat menggunakan baris perintah:
Jika Java tidak ada di jalur Anda, rujuk langsung:
sumber
Sumber terbuka adalah teman Anda :-)
Inilah unzip : http://gnuwin32.sourceforge.net/packages/unzip.htm
Ada perintah ZIP juga: http://gnuwin32.sourceforge.net/packages/zip.htm
The binari download cukup.
sumber
Ini adalah versi terbaru untuk jawaban yang diberikan oleh @ PodTech.io
Versi ini memiliki semua kode vbs dengan benar lolos dalam file batch. Ini juga dibuat menjadi sub-rutin, yang dapat dipanggil dengan satu baris dari mana saja dalam skrip batch Anda:
sumber
Anda mengatakan Anda mencoba melakukan ini tanpa perangkat lunak pihak ketiga. Saya tidak yakin apakah Anda akan mempertimbangkan perangkat lunak .NET "pihak ketiga".
Tetapi Anda dapat membuat utilitas baris perintah Anda sendiri di .NET. Seharusnya tidak memerlukan lebih dari beberapa baris kode.
Kelas ZipFile
sumber
Menambahkan jawaban @Jason Duffett dan komentarnya, inilah skrip yang mendapat input dan output (nama file dan nama direktori, masing-masing) dari pengguna:
Pemakaian:
sumber
Untuk menyalin file:
sumber
Anda dapat mengompres file Windows terkompresi atau zip asli dengan menggunakan perintah Expand , misalnya
sumber
Expand file.zip file
cukup salin zip ke file lain tanpa ekstensi. Itu tidak membuka kompresi ZIP ke folder.