Możliwe jest skompresowanie plików bez instalowania dodatkowego oprogramowania (przetestowałem to). Rozwiązaniem jest:
Uruchom to w oknie wiersza polecenia, 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 przetestowałem go pod kątem ścieżek i nazw plików zawierających spacje. Może to zadziałać, jeśli wokół parametrów wiersza poleceń zostaną umieszczone cudzysłowy.
Jak to działa: wbudowana funkcja zip w systemie Windows (Windows XP i nowszy?) Jest udostępniana przez interfejsy COM z powłoki Windows explorer.exe - czyli części „Shell.Application”. Tego interfejsu COM można używać ze skryptu VBScript, ponieważ taki skrypt może uzyskiwać dostęp do komponentów COM. Aby skrypt był w pełni samodzielny, na początek tworzy pusty plik ZIP (można również utworzyć pusty plik ZIP i skopiować go do systemu docelowego wraz ze skryptem VBScript).
VBScript jest instalowany domyślnie w każdym wydaniu systemu Microsoft Windows na komputer od wersji Windows 98.
CScript.exe
jest częścią Windows Script Host . Windows Script Host jest domyślnie dystrybuowany i instalowany w systemie Windows 98 i nowszych wersjach systemu Windows. Jest także instalowany, jeśli zainstalowany jest Internet Explorer 5 (lub nowszy).