Saya memiliki file batch yang menghasilkan file teks. Saya pikir akan lebih baik jika saya bisa mengancingkannya juga.
Ini akan digunakan dalam lingkungan yang tidak terkendali, jadi saya tidak dapat membuat asumsi tentang keberadaan produk perangkat lunak pihak ketiga seperti 7-Zip , dll. Ini perlu menggunakan kemampuan Windows yang sekarang ada di dalam untuk zip file.
windows
command-line
batch
zip
Aaron Bush
sumber
sumber
powershell.exe Compress-Archive file-to-zip.txt zippedfile.zip
(berfungsi dengan folder juga)Jawaban:
Berikut ini adalah solusi semua file batch (variasi dari jawaban saya yang lain) yang akan mem-zip sebuah file bernama
c:\ue_english.txt
dan memasukkannyaC:\someArchive.zip
:Diperlukan akses tulis ke induk folder yang disimpan
TEMPDIR
. Karena hal ini sering tidak berlaku untuk root dari drive CTEMPDIR
mungkin harus diubah.Akses tulis juga diperlukan untuk folder tempat
.bat
skrip berada (karena menghasilkan file di sana).Perlu diketahui juga bahwa ekstensi file untuk file yang dikompresi harus
.zip
. Upaya untuk menggunakan ekstensi lain dapat menyebabkan kesalahan skrip. Sebaliknya, hasilkan.zip
file dan ganti namanya.sumber
write-zip
cmdlet yang dapat diunduh dari Pscx .TEMPDIR
? Saya pikir niat Anda adalah untuk membungkus fileFILETOZIP
dengan folder, kan?Hal ini dimungkinkan untuk zip file tanpa instalasi perangkat lunak tambahan (Saya telah diuji). Solusinya adalah:
Jalankan ini di jendela baris perintah untuk membuat file ZIP bernama
C:\someArchive.zip
berisi semua file di folderC:\test3
:Di mana file
zip.vbs
berisi:Saya belum mengujinya untuk jalur dan nama file yang berisi spasi. Mungkin berhasil jika tanda kutip diletakkan di sekitar parameter baris perintah.
Cara kerjanya: fungsi zip bawaan di Windows (Windows XP dan yang lebih baru?) Diekspos melalui antarmuka COM dari shell Windows, explorer.exe - itu adalah bagian "Shell.Application". Antarmuka COM ini dapat digunakan dari skrip VBScript karena skrip tersebut dapat mengakses komponen COM. Untuk membuat skrip sepenuhnya mandiri, ia membuat file ZIP kosong untuk memulai (orang juga bisa membuat file ZIP kosong dan menyalinnya ke sistem target bersama dengan skrip VBScript).
VBScript telah diinstal secara default di setiap rilis desktop Microsoft Windows sejak Windows 98.
CScript.exe
adalah bagian dari Host Script Windows . Windows Script Host didistribusikan dan diinstal secara default pada Windows 98 dan versi Windows yang lebih baru. Ini juga diinstal jika Internet Explorer 5 (atau versi yang lebih baru) diinstal.sumber
Jika Anda terbuka untuk menggunakan PowerShell , kapabilitas zip tersedia di .NET 2.0 (PowerShell is .NET). Berikut ini contoh kredit ( sumber ) untuk Mike Hodnick :
sumber
Anda dapat menghilangkan risiko penghentian waktu selama kompresi dengan polling untuk keberadaan jendela dialog kompresi. Metode ini juga menangani pembatalan pengguna dari jendela kompresi.
sumber
.Sleep(whatever)
" membuat saya muak.Jika Anda dapat menginstal Resource Kit Tools , Anda akan menemukan alat baris perintah yang disebut COMPRESS yang dapat membuat file arsip terkompresi seperti zip.
sumber
sumber
objShell.NameSpace( ZipFile ).Items.Count
di dalam loop, selalu 0 meskipun file zip dibuat dan memiliki konten yang diharapkan di dalam ...Banyak file / direktori dengan kode sederhana.
file zip.vbs
sumber
Ini adalah mutasi dari jawaban yang diterima. Saya melakukan banyak tugas otomasi pada ribuan file sekaligus, jadi saya tidak bisa hanya tidur selama 2 detik dan tidak peduli. Saya mendapatkan solusinya di sini , yang juga mirip dengan jawaban Jiří Kočara di sini .
Ini akan menyebabkan folder tujuan di-ping setiap 200ms, yang kira-kira secepat Microsoft mengatakan untuk memeriksa pembaruan FS.
sumber
Inilah upaya saya untuk merangkum jendela kemampuan bawaan untuk kompresi dan uncompression - https://stackoverflow.com/questions/28043589/how-can-i-compres-zip-and-uncopress-unzip-files-and-folders -dengan-batch-f
dengan beberapa solusi yang diberikan yang harus bekerja pada hampir setiap mesin windows.
Mengenai shell.aplikasi dan WSH saya lebih suka jscript karena memungkinkan file batch / jscript hybrid (dengan ekstensi .bat) yang tidak memerlukan file temp. Saya telah menempatkan kemampuan unzip dan zip dalam satu file plus beberapa fitur lainnya .
sumber
Jika pada Windows 8 atau Windows Server 2012 Anda akan memiliki PowerShell dan .NET 4.5 sehingga Anda dapat melakukan ini:
zip.ps1 (penggunaan :)
-directory <directory to zip up> -name <zip name>
:zip.bat (jika Anda membutuhkan penolong untuk memanggil PowerShell untuk Anda, direktori tersebut adalah argumen pertama dan nama zip kedua):
sumber
Windows 10 build 17063 atau lebih baru dibundel dengan tar.exe yang mampu bekerja dengan zip dari baris perintah.
atau untuk membuat arsip
sumber
Baris perintah Windows sekarang menyediakan perintah ringkas yang, sejauh yang saya tahu, adalah asli Windows. Itu harus memenuhi persyaratan yang diminta kecuali saya melewatkan sesuatu.
sumber
compact
ada sejak XP dan merupakan alat untuk mengelola kompresi NTFS