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 folder C:\test3
:
CScript zip.vbs C:\test3 C:\someArchive.zip
Di mana file zip.vbs
berisi:
' Get command-line arguments.
Set objArgs = WScript.Arguments
Set FS = CreateObject("Scripting.FileSystemObject")
InputFolder = FS.GetAbsolutePathName(objArgs(0))
ZipFile = FS.GetAbsolutePathName(objArgs(1))
' Create an empty ZIP file.
CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar)
Set objShell = CreateObject("Shell.Application")
Set source = objShell.NameSpace(InputFolder).Items
objShell.NameSpace(ZipFile).CopyHere(source)
' Required to let the ZIP command execute
' If this script randomly fails or the ZIP file is not complete,
' just increase to more than 2 seconds
wScript.Sleep 2000
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.