elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Zippear archivos en vbs/batch/js
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: Zippear archivos en vbs/batch/js  (Leído 30,302 veces)
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Zippear archivos en vbs/batch
« Respuesta #10 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


« Última modificación: 7 Agosto 2008, 14:13 pm por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
SmartGenius

Desconectado Desconectado

Mensajes: 181


:P


Ver Perfil WWW
Re: Zippear archivos en vbs/batch
« Respuesta #11 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.


En línea


Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Zippear archivos en vbs/batch
« Respuesta #12 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
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Zippear archivos en vbs/batch
« Respuesta #13 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
  1. @if(0)==(0) ECHO On
  2. CScript.exe //NoLogo //E:JScript "%~f0" %*
  3. GOTO :EOF
  4. @end
  5. var Usage="Uso: MakeZIP.CMD ZIPfile files...";
  6. if(WScript.Arguments.Count()<2){
  7. WScript.Echo(Usage);
  8. WScript.Quit();
  9. /* se revisa que la cantidad de argumentos sean al menos 2, sino se termina y se informa de como funciona el script*/
  10. }
  11. var ZIPfile=WScript.Arguments.Item(0);
  12. /*se guarda en una variable el valor del primer argumento*/
  13. var fso=new ActiveXObject("Scripting.FileSystemObject");
  14. /*se crea el objeto para manejar archivos*/
  15. if(fso.GetExtensionName(ZIPfile).toUpperCase()!="ZIP"){
  16. WScript.Echo("Extension de Nombre Invalido -",ZIPfile);
  17. WScript.Quit();
  18. /*se revisa que la extension que le hemos dado a nuestro archivo sea zip*/
  19. }
  20. if(!fso.FileExists(ZIPfile)){
  21. var File=fso.CreateTextFile(ZIPfile,false);
  22. File.Write("PK" + String.fromCharCode(5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0));
  23. File.Close();
  24. /*si no existe el zip, se crea y se le escribe la cabecera que lo identifica como tal*/
  25. }
  26. var wShell=new ActiveXObject("WScript.Shell");
  27. /*se crea un nuevo objeto que se utiliza una sola vez para mostrar un mensaje*/
  28. var vbYesNoCancel=3;
  29. var vbQuestion=32;
  30. var vbYes=6;
  31. var vbNo=7;
  32. var vbCancel=2;
  33. /* se le dan valores a algunas variables de respuesta*/
  34. var Shell=new ActiveXObject("Shell.Application");
  35. /* se crea un nuevo objeto para manejar archivos y carpetas*/
  36. var File=fso.GetFile(ZIPfile);
  37. /*se guarda el archivo zip*/
  38. var zFolder=Shell.NameSpace(File.Path);
  39. /*se utiliza namespace para obtener acceso a ciertas propiedades del archivo zip, y se guarda en una variable*/
  40. F1:for(var k=1;k<WScript.Arguments.Count();k++){
  41. var Path=WScript.Arguments.Item(k);
  42. var FileName=fso.GetFileName(Path);
  43. var sFolderItem=Shell.NameSpace(fso.GetAbsolutePathName(Path)+String.fromCharCode(92,92,46,46,92,92)).ParseName(FileName);
  44. /*se obtiene la ruta completa del archivo*/
  45. if(!sFolderItem){
  46. WScript.Echo(Path,"- No encontrado.");
  47. break;
  48. /*Se revisa que exista la ruta del archivo, si no existe avisa y termina*/
  49. }
  50. W1:while(true){
  51. /*cuando esta ok*/
  52. var zFolderItem=zFolder.ParseName(FileName);
  53. if(!zFolderItem){
  54. var ModifyDate=new Date(File.DateLastModified);
  55. /*se guarda en una variable, la fecha de la ultima modificación del archivo*/
  56. zFolder.CopyHere(sFolderItem);
  57. /*se copia el archivo al zip*/
  58. while(ModifyDate.valueOf()==new Date(File.DateLastModified).valueOf()) WScript.Sleep(100);
  59. /*cuando la fecha del archivo continue siendo la misma, se hace una espera*/
  60. break;
  61. }else{
  62. /*si no esta ok*/
  63. var Ans=wShell.PopUp("aaaaaaaaaa:\n\n"+'"'+FileName+'"\n\nbbbbbbbbbb?',0,"cccccc",vbYesNoCancel+vbQuestion);
  64. /*muestra un mensaje, sin sentido :p*/
  65. switch(Ans){
  66. case vbYes:
  67. zFolderItem.InvokeVerb("delete");
  68. /*si se responde si, borra el archivo*/
  69. break;
  70. case vbNo:
  71. break W1;
  72. case vbCancel:
  73. break F1;
  74. }
  75. }
  76. }
  77. }
  78. WScript.Quit();
  79. /*se termina el script*/

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)
« Última modificación: 11 Agosto 2008, 17:58 pm por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Zippear archivos en vbs/batch
« Respuesta #14 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
  1. var objfso = new ActiveXObject("Scripting.FileSystemObject");
  2. /*creamos el objeto que se encarga de manejar archivos*/
  3.  
  4. var nzip = objfso.OpenTextFile("C:\\nzip.zip",2,true);
  5.  
  6. WScript.echo(WScript.scriptfullname);
  7. /*creamos el archivo zip, en este caso nzip.zip en el directorio C:*/
  8. nzip.write("PK" + String.fromCharCode(5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0));
  9. nzip.close;
  10. /*escribimos el encabezado del archivo, que hace que se reconozcan como zip*/
  11.  
  12. var objsap = new ActiveXObject("Shell.Application");
  13. /*creamos un nuevo objecto*/
  14.  
  15. objsap.namespace("c:\\nzip.zip").copyhere(WScript.scriptfullname);
  16. /*dentro de nuestro zip, copiamos el archivo, en este caso, el propio script*/
  17. WScript.sleep(2000);
  18. /*agregamos una pequeña espera para que de tiempo a copiarse el archivo en el zip*/

Saludos  ;)
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
carlitos.dll

Desconectado Desconectado

Mensajes: 266



Ver Perfil
Re: Zippear archivos en vbs/batch/js
« Respuesta #15 en: 14 Agosto 2008, 21:32 pm »

parece que es posible comprimir en zip desde batch usando comandos de dos.
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Zippear archivos en vbs/batch/js
« Respuesta #16 en: 14 Agosto 2008, 22:00 pm »

Si lo encuentras publicalo... así queda un método más  :P
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
carlitos.dll

Desconectado Desconectado

Mensajes: 266



Ver Perfil
Re: Zippear archivos en vbs/batch/js
« Respuesta #17 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.

En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Zippear archivos en vbs/batch/js
« Respuesta #18 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
« Última modificación: 16 Agosto 2008, 01:15 am por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Zippear archivos en vbs/batch/js
« Respuesta #19 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:

Syntax:

   COMPRESS [-R] [-D] [-S] [ -Z | -ZX ] Source Destination
   COMPRESS -R [-D] [-S] [ -Z | -ZX ] Source [Destination]

Description:
   Compresses one or more files.

Parameter List:
   -R           Rename compressed files.

   -D           Update compressed files only if out of date.

   -S           Suppress copyright information.

   -ZX          LZX compression. This is default compression.

   -Z           MS-ZIP compression.

   Source       Source file specification. Wildcards may be
                used.

   Destination  Destination file | path specification.
                Destination may be a directory. If Source is
                multiple files and -r is not specified,
                Destination must be a directory.

Examples:
    COMPRESS temp.txt compressed.txt
    COMPRESS -R *.*
    COMPRESS -R *.exe *.dll compressed_dir

http://www.microsoft.com/downloads/details.aspx?FamilyID=9D467A69-57FF-4AE7-96EE-B18C4790CFFD&displaylang=en#RelatedLinks


Saludos.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Archivos batch que entren a paginas web.
Scripting
martiin29 8 6,698 Último mensaje 23 Enero 2011, 12:31 pm
por SuperDraco
Archivos Batch.
Scripting
B€T€B€ 0 2,123 Último mensaje 31 Mayo 2011, 00:41 am
por B€T€B€
[Batch] Ice Crack 1.3 (Stealer y craqueador de archivos) « 1 2 3 4 »
Scripting
Eleкtro 34 30,205 Último mensaje 19 Mayo 2013, 01:50 am
por Zebas
Archivos .bat (batch) que se remplacen mutuamente
Scripting
Caparroni 0 1,727 Último mensaje 13 Febrero 2016, 12:46 pm
por Caparroni
[Batch] Cuenta de Archivos
Scripting
osmel92 1 1,997 Último mensaje 14 Marzo 2016, 06:39 am
por osmel92
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines