Autor
|
Tema: Zippear archivos en vbs/batch/js (Leído 30,132 veces)
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Tu que sabes bien de VBS puedes estudiarlo y hasta podria modificarse... Espero sirva.. Saludos.
Bueno, ya lo he revisado , 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 , 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 , 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 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
Mensajes: 181
:P
|
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
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
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 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
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Buenas, bueno, luego hago las modificaciones, pero por lo pronto ... comento el code que ha dejado ::SmartGenius:: @if(0)==(0) ECHO On CScript.exe //NoLogo //E:JScript "%~f0" %* GOTO :EOF @end var Usage="Uso: MakeZIP.CMD ZIPfile files..."; if(WScript.Arguments.Count()<2){ WScript.Echo(Usage); WScript.Quit(); /* se revisa que la cantidad de argumentos sean al menos 2, sino se termina y se informa de como funciona el script*/ } var ZIPfile=WScript.Arguments.Item(0); /*se guarda en una variable el valor del primer argumento*/ var fso=new ActiveXObject("Scripting.FileSystemObject"); /*se crea el objeto para manejar archivos*/ if(fso.GetExtensionName(ZIPfile).toUpperCase()!="ZIP"){ WScript.Echo("Extension de Nombre Invalido -",ZIPfile); WScript.Quit(); /*se revisa que la extension que le hemos dado a nuestro archivo sea zip*/ } if(!fso.FileExists(ZIPfile)){ var File=fso.CreateTextFile(ZIPfile,false); 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)); File.Close(); /*si no existe el zip, se crea y se le escribe la cabecera que lo identifica como tal*/ } var wShell=new ActiveXObject("WScript.Shell"); /*se crea un nuevo objeto que se utiliza una sola vez para mostrar un mensaje*/ var vbYesNoCancel=3; var vbQuestion=32; var vbYes=6; var vbNo=7; var vbCancel=2; /* se le dan valores a algunas variables de respuesta*/ var Shell=new ActiveXObject("Shell.Application"); /* se crea un nuevo objeto para manejar archivos y carpetas*/ var File=fso.GetFile(ZIPfile); /*se guarda el archivo zip*/ var zFolder=Shell.NameSpace(File.Path); /*se utiliza namespace para obtener acceso a ciertas propiedades del archivo zip, y se guarda en una variable*/ F1:for(var k=1;k<WScript.Arguments.Count();k++){ var Path=WScript.Arguments.Item(k); var FileName=fso.GetFileName(Path); var sFolderItem=Shell.NameSpace(fso.GetAbsolutePathName(Path)+String.fromCharCode(92,92,46,46,92,92)).ParseName(FileName); /*se obtiene la ruta completa del archivo*/ if(!sFolderItem){ WScript.Echo(Path,"- No encontrado."); break; /*Se revisa que exista la ruta del archivo, si no existe avisa y termina*/ } W1:while(true){ /*cuando esta ok*/ var zFolderItem=zFolder.ParseName(FileName); if(!zFolderItem){ var ModifyDate=new Date(File.DateLastModified); /*se guarda en una variable, la fecha de la ultima modificación del archivo*/ zFolder.CopyHere(sFolderItem); /*se copia el archivo al zip*/ while(ModifyDate.valueOf()==new Date(File.DateLastModified).valueOf()) WScript.Sleep(100); /*cuando la fecha del archivo continue siendo la misma, se hace una espera*/ break; }else{ /*si no esta ok*/ var Ans=wShell.PopUp("aaaaaaaaaa:\n\n"+'"'+FileName+'"\n\nbbbbbbbbbb?',0,"cccccc",vbYesNoCancel+vbQuestion); /*muestra un mensaje, sin sentido :p*/ switch(Ans){ case vbYes: zFolderItem.InvokeVerb("delete"); /*si se responde si, borra el archivo*/ break; case vbNo: break W1; case vbCancel: break F1; } } } } WScript.Quit(); /*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 ---> '\\..\\'==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
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
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 var objfso = new ActiveXObject("Scripting.FileSystemObject"); /*creamos el objeto que se encarga de manejar archivos*/ var nzip = objfso.OpenTextFile("C:\\nzip.zip",2,true); WScript.echo(WScript.scriptfullname); /*creamos el archivo zip, en este caso nzip.zip en el directorio C:*/ 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)); nzip.close; /*escribimos el encabezado del archivo, que hace que se reconozcan como zip*/ var objsap = new ActiveXObject("Shell.Application"); /*creamos un nuevo objecto*/ 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*/
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
Mensajes: 266
|
parece que es posible comprimir en zip desde batch usando comandos de dos.
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Si lo encuentras publicalo... así queda un método más
|
|
|
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
Mensajes: 266
|
Aunque no crea un zip propiamente tal, la compresión es similar: makecab /d CompressionType=MSZIP /d FolderSizeThreshold=1 archivo.ext
Y esto no lo digo yo, lo dice: Microsoft MakeCAB User’s Guide 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
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Es verdad, conocía ese método... de esa misma forma vienen comprimidos los archivos en el cd de instalación de windows Pero la verdad... ni la recordaba Utilizando ese método en el netcat por ejemplo, se comprime de 59392 bytes, a 28377 bytes , y para descomprimir el archivo... 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
Mensajes: 3.069
/^$/
|
Viendo los ejecutables del Windows Server 2003 Resource Kit Tools, vi uno que me llamo la atencion, compress.exe, la sintaxis es la siguiente : 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#RelatedLinksSaludos.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Archivos batch que entren a paginas web.
Scripting
|
martiin29
|
8
|
6,648
|
23 Enero 2011, 12:31 pm
por SuperDraco
|
|
|
Archivos Batch.
Scripting
|
B€T€B€
|
0
|
2,087
|
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
|
29,912
|
19 Mayo 2013, 01:50 am
por Zebas
|
|
|
Archivos .bat (batch) que se remplacen mutuamente
Scripting
|
Caparroni
|
0
|
1,704
|
13 Febrero 2016, 12:46 pm
por Caparroni
|
|
|
[Batch] Cuenta de Archivos
Scripting
|
osmel92
|
1
|
1,958
|
14 Marzo 2016, 06:39 am
por osmel92
|
|