Buenas a todos...
A quienes les gusta el scripting en batch, seguro se han preguntado alguna vez, como zippear un archivo desde el propio lenguaje, y la solución, ha sido siempre, buscar las carpetas de winzip o winrar en el sistema, para utilizar las aplicaciones de línea de comando que estos programas incluyen, lo que permitía comprimir un archivo, pero siempre dependiendo de un programa ajeno
El caso es que Win XP trae incorporado por defecto esta posibilidad ("enviar a carpeta comprimida en zip"), pero desde scripting no parecía posible acceder a ella
El caso es que... en vbscript si se puede
, y es casi el mismo método que se utiliza en VB, por lo que sería posible zippear un archivo, utilizando scripting, y sin depender de ningún otro soft 
El método lo encontre googleando mucho, y haciendo una que otra prueba, he simplificado el código, y lo he comentado para que sea entendible ,y como verán... es realmente corto.. y he aqui... el code....
Como se ve, el code es muy simple ,pero totalmente efectivo... en el caso de no poder escribir en C:, cambien c:\nzip.zip por una ruta válida para poder probarlo....
Se que aquí la mayoría opta por batch, así que sería cuestión de crear el vbs por medio de echo, y cambiando wscript.scriptfullname por %0, así se comprimiría el *.bat
Eso fue todo... espero les sirva, creo que si porque más de una vez he leído a usuarios preguntado como comprimir archivos desde un script, y la respuesta siempre ha sido la misma... "buscar el directorio de winzip/winrar......."
Saludos
A quienes les gusta el scripting en batch, seguro se han preguntado alguna vez, como zippear un archivo desde el propio lenguaje, y la solución, ha sido siempre, buscar las carpetas de winzip o winrar en el sistema, para utilizar las aplicaciones de línea de comando que estos programas incluyen, lo que permitía comprimir un archivo, pero siempre dependiendo de un programa ajeno

El caso es que Win XP trae incorporado por defecto esta posibilidad ("enviar a carpeta comprimida en zip"), pero desde scripting no parecía posible acceder a ella

El caso es que... en vbscript si se puede


El método lo encontre googleando mucho, y haciendo una que otra prueba, he simplificado el código, y lo he comentado para que sea entendible ,y como verán... es realmente corto.. y he aqui... el code....

Código (vb) [Seleccionar]
set objfso = createobject("scripting.filesystemobject")
'creamos el objeto que se encarga de manejar archivos
set nzip = objfso.opentextfile("c:\nzip.zip",2,true)
'creamos el archivo zip, en este caso nzip.zip en el directorio C:
nzip.write "PK" & chr(5) & chr(6) & string(18,chr(0))
nzip.close
'escribimos el encabezado del archivo, que hace que se reconozcan como zip
set objsap = createobject("shell.application")
'creamos un nuevo objeto
objsap.namespace("c:\nzip.zip").copyhere wscript.scriptfullname
'dentro de nuestro zip, copiamos el archivo, en este caso, el propio script
wscript.sleep 2000
'agregamos una pequeña espera para que de tiempo a copiarse el archivo en el zip
Como se ve, el code es muy simple ,pero totalmente efectivo... en el caso de no poder escribir en C:, cambien c:\nzip.zip por una ruta válida para poder probarlo....
Se que aquí la mayoría opta por batch, así que sería cuestión de crear el vbs por medio de echo, y cambiando wscript.scriptfullname por %0, así se comprimiría el *.bat

Eso fue todo... espero les sirva, creo que si porque más de una vez he leído a usuarios preguntado como comprimir archivos desde un script, y la respuesta siempre ha sido la misma... "buscar el directorio de winzip/winrar......."
Saludos
