Título: Zippear archivos en vbs/batch/js Publicado por: Novlucker en 4 Agosto 2008, 03:30 am 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 :D, 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 ;D 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.... :P Código 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 ;D Título: Re: Zippear archivo en vbs/batch Publicado por: leogtz en 4 Agosto 2008, 03:53 am Claro que sirve :), gracias por el aporte.
Tal ves haya una forma de hacerlo en Batch, tal ves... Saludos. Título: Re: Zippear archivo en vbs/batch Publicado por: Novlucker en 4 Agosto 2008, 04:07 am Citar Tal ves haya una forma de hacerlo en Batch, tal ves... Quizás si... por el momento, y como comenté antes, la opción es más o menos esta.... Código
;D Saludos Título: Re: Zippear archivos en vbs/batch Publicado por: wizard_0 en 4 Agosto 2008, 05:58 am Muy weno excelente!!!
salu2--> Título: Re: Zippear archivos en vbs/batch Publicado por: leogtz en 4 Agosto 2008, 08:32 am Novlucker
Si te sirve de algo, asi se puede abrir un Zip en el navegador : Código: Rundll32.exe zipfldr.dll, RoutheTheCall prueba.zip Saludos. :) Título: Re: Zippear archivos en vbs/batch Publicado por: Novlucker en 4 Agosto 2008, 14:28 pm Novlucker Si te sirve de algo, asi se puede abrir un Zip en el navegador : Código: Rundll32.exe zipfldr.dll, RoutheTheCall prueba.zip Si, conocía el método, también lo había encontrado desde hace algún tiempo, y en base a ese, intenté de todos los modos comprimir un archivo, pero por lo visto, solo permite descomprimir :-\, como es posible que pueda descomprimir, pero no comprimir? en todo google no hay una manera de hacer esto con Rundll32.exe zipfldr.dll!!! :-X Saludos Título: Re: Zippear archivos en vbs/batch Publicado por: leogtz en 4 Agosto 2008, 18:35 pm Exactamente, haller que pusiste el code, pense que debia de haber una forma de comprimir o descomprimir en Batch, y realmente busque durante varias horas.
Y llegue a ver codes que usaban el zipfldr.dll, dynazip.dll (Algunas mas) pero nada de nada :-\ Solo lo usaban para abrir un .zip con el Explorer. Pero nunca para comprimir o descomprimir. Bueno luego sigo buscando. :xD Saludos. Título: Re: Zippear archivos en vbs/batch Publicado por: BenRu en 4 Agosto 2008, 18:47 pm En batch si no recuerdo mal, se puede.
Simplemente le pasas un comando al winrar... Miren el readme de winrar. Un saludo Título: Re: Zippear archivos en vbs/batch Publicado por: Novlucker en 4 Agosto 2008, 18:52 pm Citar 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.... Es que la idea es justamente, no depender de otro programa :rolleyes: Título: Re: Zippear archivos en vbs/batch Publicado por: SmartGenius en 7 Agosto 2008, 02:43 am Oye Novlucker, yo siempre tuve esa duda y tambien busque info... llegue hasta unos foros chinos de scripting y esto fue lo que saque, pero no lo se manejar bien....
Código: @if(0)==(0) ECHO On Aun no se como funciona le code, o si tiene algun problema, es que lo encontre por ahi en un foro CHINO y pues queria entender un poco la sintaxis, se que es mezcla de comando Batch o CMD y de vbs, y pues nos crea un archivo ZIP con un listado de archivos que le demos... Tu que sabes bien de VBS puedes estudiarlo y hasta podria modificarse... ;D Espero sirva.. Saludos. Título: Re: Zippear archivos en vbs/batch Publicado por: Novlucker en 7 Agosto 2008, 04:25 am Citar Tu que sabes bien de VBS puedes estudiarlo y hasta podria modificarse... Espero sirva.. Saludos. Bueno, ya lo he revisado :P, el cmd no se utiliza practicamente para, a traves de ms-dos solamente se le pasan los parametros al script, que dicho sea de paso, se trata de javascript, y el método utilizado, es practicamente el mismo que en vbs, solamente que en javascript :P, también he de agregar,que ese code es tan largo, porque se le han agregado determinadas rutinas de verficación y esta hecho para pasar varios archivos al zip, a diferencia del que he dejado, que no verifica absolutamente nada :xD, pero era para que se entendiera facilmente ;) Si quieres comento el código, pero como digo, es muy parecido al que he dejado en vbs, pero con la diferencia de que esta implementado en javascript :D Saludos Título: Re: Zippear archivos en vbs/batch Publicado por: SmartGenius en 8 Agosto 2008, 02:51 am Master, me vendria al pelo que lo comentaras...estoy aprendiendo de estos lenguajes de scripting (JS,VBS,Batch) y estaria interesante saber como trabaja....
Podrias de paso combinar los dos scripts, para que se acepten varios archivos para agregar al ZIP, y tambien las funcines de comprobacion, aunque no tantas... Saludos y Gracias. Título: Re: Zippear archivos en vbs/batch Publicado por: Novlucker en 8 Agosto 2008, 13:07 pm Citar Podrias de paso combinar los dos scripts, para que se acepten varios archivos para agregar al ZIP, y tambien las funcines de comprobacion, aunque no tantas... Supongo que con combinar te refieres a que el vbs al igual que el js, acepte varios archivos, y que realice algún tipo de comprobación.... y que por otro lado, el js, no sea tan extenso verdad? Si es así, no tengo problemas en hacerlo, y en cuanto tenga oportunidad, me pongo en ello ;D Saludos Título: Re: Zippear archivos en vbs/batch Publicado por: Novlucker en 10 Agosto 2008, 05:58 am Buenas, bueno, luego hago las modificaciones, pero por lo pronto ... comento el code que ha dejado ::SmartGenius:: :P
Código
No le pongo etiquetas geshi porque lo marca de manera extraña :¬¬ Saludos ;) [Modifico:] Bueno, finalmente he encontrado que era lo que hacía que las etiquetas geshi marcaran todo de manera incorrecta, y lo he sustituído por un equivalente :P ---> '\\..\\'==String.fromCharCode(92,92,46,46,92,92) Título: Re: Zippear archivos en vbs/batch Publicado por: Novlucker en 12 Agosto 2008, 01:51 am Bueno, he estado viendo lo de modificar los codes para que ambos acepten más de un archivo, pero creo que no tiene mucho sentido, salvo que se le pasen todos los archivos de una carpeta, o bien, se utilice desde línea de comandos para pasarle más de un archivo, como el caso del primer javascript, así que por el momento simplemente he traducido mi primer script vbs a js para que al menos se puedan comparar los dos lenguajes :P
Código
Saludos ;) Título: Re: Zippear archivos en vbs/batch/js Publicado por: carlitos.dll en 14 Agosto 2008, 21:32 pm parece que es posible comprimir en zip desde batch usando comandos de dos.
Título: Re: Zippear archivos en vbs/batch/js Publicado por: Novlucker en 14 Agosto 2008, 22:00 pm Si lo encuentras publicalo... así queda un método más :P
Título: Re: Zippear archivos en vbs/batch/js Publicado por: carlitos.dll en 14 Agosto 2008, 22:28 pm Aunque no crea un zip propiamente tal, la compresión es similar:
Código: makecab /d CompressionType=MSZIP /d FolderSizeThreshold=1 archivo.ext Y esto no lo digo yo, lo dice: Microsoft MakeCAB User’s Guide Citar Using MSZIP compression and FolderSizeThreshold=1 will generate a cabinet file approximately the same size as a PKZIP-compatible compression engine aunque /d CompressionType=MSZIP está demás, porque es una de las opciones por defecto. Título: Re: Zippear archivos en vbs/batch/js Publicado por: Novlucker en 14 Agosto 2008, 23:39 pm Es verdad, conocía ese método... de esa misma forma vienen comprimidos los archivos en el cd de instalación de windows :P
Pero la verdad... ni la recordaba :xD Utilizando ese método en el netcat por ejemplo, se comprime de 59392 bytes, a 28377 bytes ;D, y para descomprimir el archivo... Código: expand origen destino Creo que es una muy buena opción que quizás varios conocen, pero nadie recuerda Saludos Título: Re: Zippear archivos en vbs/batch/js Publicado por: leogtz en 23 Septiembre 2008, 19:17 pm Viendo los ejecutables del Windows Server 2003 Resource Kit Tools, vi uno que me llamo la atencion, compress.exe, la sintaxis es la siguiente :
Código:
http://www.microsoft.com/downloads/details.aspx?FamilyID=9D467A69-57FF-4AE7-96EE-B18C4790CFFD&displaylang=en#RelatedLinks (http://www.microsoft.com/downloads/details.aspx?FamilyID=9D467A69-57FF-4AE7-96EE-B18C4790CFFD&displaylang=en#RelatedLinks) Saludos. Título: Re: Zippear archivos en vbs/batch/js Publicado por: drrub en 5 Octubre 2008, 17:44 pm Hola, muy buenas para todos. Buscando informacion sobre como automatizar tareas para la compresion de archivos me he encontrado con este BAT
Codigo: @echo off for /D %%a in (*.) do 7z.exe a -tzip %%a %%a -mx9 -r -x!*.bak Por lo que explicaban en el post (Aun soy muy torpe en el mundillo de los BAT), el programa de compresion de archivos llamado 7-zip (www.7-zip.org), comprimia las carpetas por separado, con tipo de compresion maxima (-mx9) y que agregue las subcarpetas (-r), y excluyendo la compresion de archivos BAK (-x!BAK). Mi pregunta es la siguiente: Se puede comprimir por separado dejando sólo los ficheros sin la ruta? Sin que agrege la carpeta al ZIP? Personalmente uso mucho este compresor y me gustaria poder usar esta caracteristica que he visto en la interfaz grafica del Winrar. P.d: Os escribo desde un ciber, lo digo por si tardo en responder. Gracias a todos. Un saludo :) Título: Re: Zippear archivos en vbs/batch/js Publicado por: leogtz en 5 Octubre 2008, 18:41 pm No se como trabaje la linea de comandos del 7z pero habria que modificar esto (Rojo) :
for /D %%a in (*.) do 7z.exe a -tzip %%a %%a -mx9 -r -x!*.bak Que es lo que hace que comprima los directorios. Título: Re: Zippear archivos en vbs/batch/js Publicado por: drrub en 5 Octubre 2008, 21:01 pm Hola de nuevo, he estado probando (mi nivel en los BAT es muy bajo) y no lo consigo quitar la ruta. Tengo una carpeta con un gran numero de subcarpetas y queria comprimir por separado solo el contenido de dichas subcarpetas, sin la subcarpeta.Es decir, agregar sólo los nombres de fichero sin la ruta. Pense que este BAT me ayudaria a lograrlo. Hay alguna manera de hacerlo? O solo se puede si el programa compresor (zip, rar, 7z..) tiene esta opcion?
Gracias a todos. Un saludo :) Título: Re: Zippear archivos en vbs/batch/js Publicado por: drrub en 8 Octubre 2008, 21:15 pm Hola a todos :) Tirando de la ayuda de linea de comandos del RAR y basandome en como lo hace, he conseguido quitar la ruta de los archivos a comprimir.
Código: echo off Como veis no es nada del otro mundo, como os he comentado anteriormente tengo un gran desconocimiento en el mundillo de los BAT y me ha surgido una pregunta y un problemilla que espero me podais ayudar. La pregunta es: Este sistema de agregar sólo los nombres de fichero sin la ruta, serviria tanto para programas de compresion ajenos como para los codigos que habeis expuesto anteriormente? El problemilla es que este codigo como sabeis, comprime solo una subcarpeta. Tras leer el tutorial de Programación BATCH Avanzada de sirdarckcat y tras un monton de horas con intentos fallidos, me he estancado y no consigo que este codigo se ejecute con todas las carpetas de un directorio. A pesar de que este post trata de zippear sin depender de un programa externo, alguien me puede echar una mano? P.d: Os escribo desde un ciber, lo digo por la posible tardanza en responder. Gracias a todos. Un saludo. Título: Re: Zippear archivo en vbs/batch Publicado por: Rodrihack en 13 Octubre 2008, 19:15 pm Citar Tal ves haya una forma de hacerlo en Batch, tal ves... Quizás si... por el momento, y como comenté antes, la opción es más o menos esta.... Código
;D Saludos Si se puede en batch les dejo la syntaxis Citar Microsoft Windows XP [Versión 5.1.2600] Muestra o altera la compresión de los archivos en particiones NTFS. COMPACT [/C | /U] [/S[:dir]] [/A] [/I] [/F] [/Q] [filename [...]] /C Comprime los archivos especificados. Los directorios serán marcados para que los archivos agregados después sean comprimidos. /U Descomprime los archivos especificados. Los directorios serán marcados para que los archivos agregados después no sean comprimidos. /S Efectúa la operación especificada en los archivos del directorio dado y todos los subdirectorios. De forma predeterminada, "dir" es el directorio actual. /A Muestra los archivos ocultos o los atributos del sistema. Estos archivos se omiten por defecto. /I Continua efectuando la operación especificada incluso después de que hayan ocurrido los errores. De forma predeterminada, COMPACT para cuando se encuentra un error. /F Fuerza la operación de compresión en todos los archivos especificados, incluso en los que ya están comprimidos. Los archivos ya comprimidos se saltan por defecto. /Q Informa sólo de la información del nombre de archivo más esencial. Usado sin parámetros, COMPACT muestra el estado de la compresión del directorio actual y cualquier archivo que contenga. Puede usar múltiples nombres de archivo y comodines. Debe poner espacios entre los parámetros. Título: Re: Zippear archivos en vbs/batch/js Publicado por: vguerra en 20 Septiembre 2013, 20:45 pm me sirvio super bien! gracias!!!! eres un cuerda!!!! ;D
|