Copie el contenido de la carpeta a un archivo .zip creado: 'archivo no encontrado o sin permisos de lectura'

Estoy intentando crear un archivo .zip desde una carpeta existente utilizando JScript y parece que mi función copyHere no está copiando en la carpeta .zip. En su lugar, aparece un cuadro emergente titulado 'Error de carpeta comprimida (comprimida)' con el mensaje 'no se encontró el archivo o no hay permisos de lectura', aunque tengo privilegios de lectura / escritura en el archivo de acuerdo con el valor de mi propiedad file.attributes (32 ).

Aquí está el script que estoy usando:

//Get commman line arguments
var objArgs = WScript.Arguments;
var zipPath = objArgs(0);
var sourcePath = objArgs(1);

//Create empty ZIP file and open for adding
var fso = new ActiveXObject("Scripting.FileSystemObject");

var file = fso.CreateTextFile(zipPath, true);
// Create twenty-two byte "fingerprint" for .zip
file.write("PK");
file.write(String.fromCharCode(5));
file.write(String.fromCharCode(6));
file.write('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');

var objShell = new ActiveXObject("shell.application");
var zipFolder = new Object;

zipFolder = objShell.NameSpace(zipPath);

sourceItems = objShell.NameSpace(sourcePath).items();    

if (zipFolder != null)
{
    zipFolder.CopyHere(sourceItems);  
    WScript.Sleep(1000);      
}

Ahora, la función CopyHere funciona para copiar el contenido de sourcePath a una carpeta normal, pero cuando intento crear un archivo .zip y copiar el contenido a eso, no sucede nada. ¿Alguna idea sobre por qué copyHere no está copiando los contenidos de sourcePath al .zip?

Un ejemplo Para llamar a este script sería:

cscript win-zip.js C:\desired\zip\file.zip C:\path\to\source\folder

Y elresultado deseado sería que file.zip fue creado y ahora contiene el contenido de la carpeta de origen. ¿Podría ser esto un problema con los permisos? ¿Qué podría causar este comportamiento?

Nota al margen, usando un vbScript y los mismos comandos puedo crear y rellenar con éxito un .zip, ¿por qué no funciona usando jscript?

Set objArgs = WScript.Arguments
ZipFile = objArgs(0)
SourceFolder = objArgs(1)

' Create empty ZIP file and open for adding
CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar)
Set zip = CreateObject("Shell.Application").NameSpace(ZipFile)

' Get items in source folder
Set sourceItems = CreateObject("Shell.Application").NameSpace(SourceFolder).Items

' Add all files/directories to the .zip file
zip.CopyHere(sourceItems)
WScript.Sleep 1000 'Wait for items to be copied

Algunaservicial Los comentarios son muy apreciados, gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta