それはis追加のソフトウェアをインストールせずにファイルをZIPすることが可能です(私はそれをテストしました)。解決策は次のとおりです:
これをコマンドラインウィンドウで実行して、フォルダC:\someArchive.zip
内のすべてのファイルを含むC:\test3
という名前のZIPファイルを作成します:
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以降?)の組み込みのzip機能は、Windowsシェル、explorer.exeから COM インターフェイスを介して公開されています - それは “Shell.Application "部分です。このCOMインターフェースは、 VBScript スクリプトから使用することができます。このスクリプトを完全に自己完結型にするためには、起動時に空のZIPファイルを作成します(空のZIPファイルを作成して、VBScriptスクリプトと一緒にターゲットシステムにコピーすることもできます)。Windows Script Hostは、Windows 98以降のバージョンのWindowsにデフォルトで配布され、インストールされています。また、Internet Explorer 5(またはそれ以降のバージョン)がインストールされている場合もインストールされます。