secuencia de comandos por lotes para comprimir una carpeta sin utilizar software externo

Tengo una carpeta con la siguiente estructura

carpeta subcarpeta (vacía) subcarpeta file1.bat file2.bat file3.bat

¿Cómo hago para escribir un archivo por lotes para comprimir el contenido de la carpeta anterior sin usar softwares externos como winrar o 7zip?

Intenté el siguiente código. Pero copiaría el contenido a la carpeta temporal especificada sin la carpeta vacía y al intentar comprimir la carpeta solo comprimiría el archivo1 y el archivo2 e ignoraría el resto del contenido.

Me gustaría poder comprimir la carpeta tal como está sin afectar la estructura.

No pude encontrar la razón del problema. Cualquier ayuda es apreciada.

set FILETOZIP=D:\OutputZipFiles\TestWorkDemo


set TEMPDIR=D:\OutputZipFiles\TempDir
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%  D:\OutputZipFiles\someArchive.zip

pause

Respuestas a la pregunta(2)

Su respuesta a la pregunta