isto é possível zipar arquivos sem a instalação de qualquer
software (eu testei). A solução é:
Execute isto em uma janela de linha de comando para criar um arquivo zip
nomeado C:\someArchive.zip
contendo todos os arquivos na pasta C:\test3
:
CScript zip.vbs C:\test3 C:\someArchive.zip
Onde arquivo zip.vbs
contém:
'Get command-line arguments.
Set objArgs = WScript.Arguments
Set FS = CreateObject("Scripting.FileSystemObject")
InputFolder = FS.GetAbsolutePathName(objArgs(0))
ZipFile = FS.GetAbsolutePathName(objArgs(1))
'Create 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
Eu não testei caminhos e nomes de arquivos contendo espaços. Pode funcionar se aspas
são colocados em torno dos parâmetros da linha de comando.
Como funciona: a funcionalidade integrada de zip no Windows (Windows XP e posterior?) É
exposta através COM interfaces do shell do Windows
, explorer.exe - que é a parte "Shell.Application". Essa interface COM pode ser usada de um VBScript roteiro porque
esse script pode acessar os componentes COM. Para tornar o script totalmente autocontido, cria
um arquivo ZIP vazio para começar (também é possível criar um arquivo ZIP vazio e copiá-lo para o sistema de destino junto com o script VBScript).
O VBScript foi instalado por padrão em todos os desktops
lançamento do Microsoft Windows desde o Windows 98.
CScript.exe
faz parte do Windows Script Host.
O Windows Script Host é distribuído e instalado por padrão no Windows 98 e versões posteriores do Windows. Ele também é instalado se o Internet Explorer 5 (ou uma versão posterior) estiver instalado.