2010-05-21 13 views
5

Estoy tratando de escribir un script que pueda darle al usuario para que comprima automáticamente ciertos archivos y luego los cargue en un sitio ftp. ¿Alguien sabe dónde podría encontrar información sobre cómo escribir un archivo por lotes para comprimir automáticamente los archivos usando solo lo que está disponible para un usuario que ejecuta Windows?Cómo comprimir archivos en Windows utilizando solo lo que está incorporado (secuencia de comandos por lotes, explorador, etc.)?

+2

posible duplicado de [Can incorporado de Windows' en la compresión ZIP ser con guión?] (http://stackoverflow.com/questions/30211/can-windows-built-in-zip-compression-be-scripted) –

+0

[aquí] (http://stackoverflow.com/questions/28043589) puede encontrar utilidades de compresión nativas en Windows – npocmaka

Respuesta

-1

una mejor alternativa al archivo por lotes sería el uso de un frasco y utilizar el paquete java.util.zip de Java para comprimir los archivos. O qué tal si distribuimos el archivo bat con un JAR. La gente podría ejecutar el archivo BAT y, a su vez, podría ejecutar el JAR.

+8

Si usa herramientas externas es el camino a seguir, ¿por qué? ¿demonios elegirías java? Hay muchas aplicaciones pequeñas de línea de comandos que pueden crear archivos zip – Anders

+0

Eso también podría ser una alternativa. Todo depende de lo que la situación demanda. – User

+1

Hablar de overkill –

0

Desde (que yo sepa) Windows no viene con un programa que puede cerrar la cremallera de archivos desde la línea de comandos. Para el caso, tampoco viene con un programa ftp programable (hay un comando ftp, pero es interactivo).

Su mejor opción es escribir un programa en un lenguaje compilado con acceso a bibliotecas para comprimir archivos y ftp.

+1

ftp -s: archivo de comandos nombre de host;) – Anders

0

foros múltiples (no puedo encontrar una respuesta oficial de Microsoft) sugieren que la funcionalidad de cremallera integrado en Windows es proporcionada por dlls para los que no hay ningún argumento de línea de comandos. Por ejemplo:

La descompresión es una función de zipfldr.dll, por lo usaría regsvr32.exe a invocarla, y por lo que yo sé no hay me lo quitaron se pueden agregar a para descomprimir a través del archivo por lotes.

- desde technologyquestions.com

recomendaría un programa de terceros, de los cuales hay muchos (que podría proporcionar, junto con un guión): 7zip, winzip, pkzip, etc.

También es posible que desee buscar en VBScript o WSH como alternativas a los archivos por lotes.

1

Es posible trabajar con archivos zip utilizando el apoyo carpeta comprimida (COM) y Windows Scripting Host. Comience creando el objeto Shell.Application. El objeto FolderItem tiene métodos como CopyHere, etc. que le permitirán manipular un archivo zip como una carpeta. Consulte this page para comprimir y descomprima el código de muestra.

-1

Windows tiene su propio comando zip. Puede poner el código siguiente en un archivo backup.bat y ejecutarlo.

@echo off 
:: variables 
set drive=E:\backup 
set backupcmd=xcopy /s /c /d /e /h /i /r /y 

echo ### Backing up My Documents... 
%backupcmd% "e:\Repositories" "%drive%\SVNrepository\Repositories" 



e: 
cd "%drive%\SVNrepository" 

zip -r -S -T -$ -m Repositories.zip Repositories 


set filename="..\Repository_bak_%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%.zip" 
move .\*.zip %filename% 
cd E:\backup\ 

echo Backup Complete! 
rem @pause 
+7

Estoy usando Windows 8 y "zip" no es un comando válido en mi símbolo del sistema. – seagull

+1

zip no es un comando válido en Windows 7 –

-1

Por [email protected]

Si desea convertir un solo archivo en un único archivo zip puede utilizar GZIP.EXE

+0

gzip no es nativo en Windows –

Cuestiones relacionadas