มันเป็นไปได้ที่จะ zip ไฟล์โดยไม่ต้องติดตั้งซอฟต์แวร์ใด ๆ เพิ่มเติม (ฉันมีการทดสอบ) ทางออกคือ:
เรียกใช้สิ่งนี้ในหน้าต่างบรรทัดคำสั่งเพื่อสร้างไฟล์ ZIP ชื่อC:\someArchive.zip
ที่มีไฟล์ทั้งหมดในโฟลเดอร์C:\test3
:
CScript zip.vbs C:\test3 C:\someArchive.zip
ไฟล์zip.vbs
ประกอบด้วย:
' 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
ฉันไม่ได้ทดสอบเส้นทางและชื่อไฟล์ที่มีช่องว่าง มันอาจทำงานได้ถ้ามีการใส่เครื่องหมายคำพูดล้อมรอบพารามิเตอร์บรรทัดคำสั่ง
มันทำงานอย่างไร: ฟังก์ชั่นซิปในตัวใน Windows (Windows XP และใหม่กว่า) ได้รับการเปิดเผยผ่านอินเตอร์เฟสCOMจากเชลล์ Windows, explorer.exe - นั่นคือส่วน "เชลล์แอปพลิเคชัน" ส่วนต่อประสาน COM นี้สามารถใช้งานได้จากสคริปต์VBScriptเนื่องจากสคริปต์ดังกล่าวสามารถเข้าถึงส่วนประกอบ COM เพื่อให้สคริปต์มีตัวเองอย่างสมบูรณ์มันจะสร้างไฟล์ ZIP ว่างเปล่าเพื่อเริ่มต้น (หนึ่งสามารถสร้างไฟล์ ZIP ที่ว่างและคัดลอกไปยังระบบเป้าหมายพร้อมกับสคริปต์ VBScript)
VBScript ได้รับการติดตั้งตามค่าเริ่มต้นในทุกรุ่นเดสก์ท็อปของ Microsoft Windows ตั้งแต่ Windows 98
CScript.exe
เป็นส่วนหนึ่งของโฮสต์สคริปต์ของ Windows Windows Script Host ได้รับการกระจายและติดตั้งโดยค่าเริ่มต้นใน Windows 98 และ Windows รุ่นที่ใหม่กว่า นอกจากนี้ยังได้รับการติดตั้งหากติดตั้ง Internet Explorer 5 (หรือรุ่นที่ใหม่กว่า)