Jest to is możliwość zipowania plików bez instalacji dodatkowego oprogramowania (testowałem go). Rozwiązanie jest następujące:
Uruchom to w oknie wiersza poleceń, aby utworzyć plik ZIP o nazwie C:\someArchive.zip
zawierający wszystkie pliki w folderze C:\test3
:
CScript zip.vbs C:\test3 C:\someArchive.zip
Gdzie plik zip.vbs
zawiera:
' 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
Nie testowałem go dla ścieżek i nazw plików zawierających spacje. Może zadziałać, jeśli wokół parametrów wiersza poleceń zostaną umieszczone cudzysłowy.
Jak to działa: wbudowana funkcja zip w Windows (Windows XP i nowszy?) jest wyeksponowana poprzez interfejsy COM z powłoki Windows, explorer.exe - czyli części “Shell.Application”. Ten interfejs COM może być używany ze skryptu VBScript , ponieważ taki skrypt ma dostęp do komponentów COM. Aby skrypt był w pełni autonomiczny, tworzy pusty plik ZIP do uruchomienia (można również utworzyć pusty plik ZIP i skopiować go do systemu docelowego wraz ze skryptem VBScript).
VBScript jest domyślnie instalowany w każdym wydaniu desktopu Microsoft Windows od Windows 98.
CScript.exe
jest częścią Windows Script Host . Windows Script Host jest domyślnie dystrybuowany i instalowany na Windows 98 i późniejszych wersjach Windows. Jest on również instalowany jeśli Internet Explorer 5 (lub późniejsza wersja) jest zainstalowany.