Aqui está uma solução de todos os arquivos em lote (uma variação da minha outra resposta) que irá compactar um arquivo chamado c:\ue_english.txt
e colocá-lo em C:\someArchive.zip
:
set FILETOZIP=c:\ue_english.txt
set TEMPDIR=C:\temp738
rmdir %TEMPDIR%
mkdir %TEMPDIR%
xcopy /s %FILETOZIP% %TEMPDIR%
echo Set objArgs = WScript.Arguments > _zipIt.vbs
echo InputFolder = objArgs(0) >> _zipIt.vbs
echo ZipFile = objArgs(1) >> _zipIt.vbs
echo CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" ^& Chr(5) ^& Chr(6) ^& String(18, vbNullChar) >> _zipIt.vbs
echo Set objShell = CreateObject("Shell.Application") >> _zipIt.vbs
echo Set source = objShell.NameSpace(InputFolder).Items >> _zipIt.vbs
echo objShell.NameSpace(ZipFile).CopyHere(source) >> _zipIt.vbs
echo wScript.Sleep 2000 >> _zipIt.vbs
CScript _zipIt.vbs %TEMPDIR% C:\someArchive.zip
pause
O acesso de gravação é necessário para o pai da pasta armazenada em TEMPDIR
. Como esse geralmente não é o caso da raiz da unidade C TEMPDIR
pode ter que ser alterada.
O acesso de gravação também é necessário para a pasta em que o script .bat
está (como gera um arquivo).
Além disso, observe que a extensão de arquivo do arquivo compactado deve ser .zip
. Tentativas de usar outra extensão podem resultar em um erro de script. Em vez disso, gere o arquivo .zip
e renomeie-o.