¿Qué comandos se pueden usar a través de la línea de comandos para descomprimir un archivo?
Preferiblemente algo integrado en Windows o herramientas de código abierto / gratuitas.
Exand-Archive
y Compress-Archive
. Honor donde se debe honor.
¿Qué comandos se pueden usar a través de la línea de comandos para descomprimir un archivo?
Preferiblemente algo integrado en Windows o herramientas de código abierto / gratuitas.
Exand-Archive
y Compress-Archive
. Honor donde se debe honor.
Respuestas:
Podrías usar:
http://membrane.com/synapse/library/pkunzip.html
o
7zip: http://www.7-zip.org/download.html
Zip de bytes gratis : http://www.freebyte.com/fbzip/
o infozip: http://infozip.sourceforge.net/
powershell.exe -NoP -NonI -Command "Expand-Archive '.\file.zip' '.\unziped\'"
Si ya tiene Java en su PC, y el directorio bin está en su ruta (en la mayoría de los casos), puede usar la línea de comando:
jar xf test.zip
o si no está en tu camino:
C:\Java\jdk1.6.0_03\bin>jar xf test.zip
Conjunto completo de opciones para la herramienta jar disponible aquí .
Ejemplos:
Extract jar file
jar x[v]f jarfile [inputfiles] [-Joption]
jar x[v] [inputfiles] [-Joption]
En primer lugar, escriba una utilidad de descompresión usando vbscript para activar la funcionalidad de descompresión nativa en Windows. Luego, canalice el script desde su archivo por lotes y luego llámelo. Entonces es tan bueno como estar solo. Lo he hecho en el pasado para numerosas tareas. De esta forma, no requiere la necesidad de aplicaciones de terceros, solo el archivo por lotes que hace todo.
Pongo un ejemplo en mi blog sobre cómo descomprimir un archivo usando un archivo por lotes :
' j_unzip.vbs
'
' UnZip a file script
'
' By Justin Godden 2010
'
' It's a mess, I know!!!
'
' Dim ArgObj, var1, var2
Set ArgObj = WScript.Arguments
If (Wscript.Arguments.Count > 0) Then
var1 = ArgObj(0)
Else
var1 = ""
End if
If var1 = "" then
strFileZIP = "example.zip"
Else
strFileZIP = var1
End if
'The location of the zip file.
REM Set WshShell = CreateObject("Wscript.Shell")
REM CurDir = WshShell.ExpandEnvironmentStrings("%%cd%%")
Dim sCurPath
sCurPath = CreateObject("Scripting.FileSystemObject").GetAbsolutePathName(".")
strZipFile = sCurPath & "\" & strFileZIP
'The folder the contents should be extracted to.
outFolder = sCurPath & "\"
WScript.Echo ( "Extracting file " & strFileZIP)
Set objShell = CreateObject( "Shell.Application" )
Set objSource = objShell.NameSpace(strZipFile).Items()
Set objTarget = objShell.NameSpace(outFolder)
intOptions = 256
objTarget.CopyHere objSource, intOptions
WScript.Echo ( "Extracted." )
' This bit is for testing purposes
REM Dim MyVar
REM MyVar = MsgBox ( strZipFile, 65, "MsgBox Example"
Úselo así:
cscript //B j_unzip.vbs zip_file_name_goes_here.zip
7-Zip , es de código abierto, gratuito y admite una amplia gama de formatos.
7z.exe x myarchive.zip
Como otros han aludido, 7-zip es genial.
Nota: voy a comprimir y luego descomprimir un archivo. Descomprimir está en la parte inferior.
Mi contribución:
Consigue el
Versión de línea de comando 7-Zip
URL actual
http://www.7-zip.org/download.html
La sintaxis?
Puede poner lo siguiente en un archivo .bat
"C:\Program Files\7-Zip\7z.exe" a MySuperCoolZipFile.zip "C:\MyFiles\*.jpg" -pmypassword -r -w"C:\MyFiles\" -mem=AES256
He mostrado algunas opciones.
-r es recursivo. Por lo general, lo que quieres con la funcionalidad zip.
a es para "archivo". Ese es el nombre del archivo zip de salida.
-p es para una contraseña (opcional)
-w es el directorio fuente. Esto anidará sus archivos correctamente en el archivo zip, sin información adicional de la carpeta.
-mem es la fuerza de cifrado.
Hay otros. Pero lo anterior te hará correr.
NOTA: Agregar una contraseña hará que el archivo zip sea poco amigable cuando se trata de ver el archivo a través del Explorador de Windows. El cliente puede necesitar su propia copia de 7-zip (o winzip u otro) para ver el contenido del archivo.
EDITAR ::::::::::::( solo cosas adicionales).
Hay una versión de "línea de comando" que probablemente sea más adecuada para esto: http://www.7-zip.org/download.html
(enlace directo actual (al momento de escribir)) http://sourceforge.net/projects/sevenzip/files/7-Zip/9.20/7za920.zip/download
Entonces, el comando zip sería (con la versión de línea de comando de la herramienta zip 7).
"C:\WhereIUnzippedCommandLineStuff\7za.exe" a MySuperCoolZipFile.zip "C:\MyFiles\*.jpg" -pmypassword -r -w"C:\MyFiles\" -mem=AES256
Ahora la parte de descompresión : (para descomprimir el archivo que acaba de crear)
"C:\WhereIUnzippedCommandLineStuff\7zipCommandLine\7za.exe" e MySuperCoolZipFile.zip "*.*" -oC:\SomeOtherFolder\MyUnzippedFolder -pmypassword -y -r
Como alternativa al argumento "e", hay un argumento ax.
e: Extract files from archive (without using directory names)
x: eXtract files with full paths
Documentación aquí:
http://sevenzip.sourceforge.jp/chm/cmdline/commands/extract.htm
Gracias Rich, tomaré nota de eso. Así que aquí está el script para mi propia solución. No requiere herramientas de descompresión de terceros.
Incluya la secuencia de comandos a continuación al comienzo del archivo por lotes para crear la función, y luego para llamar a la función, el comando es ...
cscript /B j_unzip.vbs zip_file_name_goes_here.zip
Aquí está el script para agregar a la parte superior ...
REM Cambiar la carpeta de trabajo al directorio actual para compatibilidad con Vista y 7 % ~ d0 CD% ~ dp0 La carpeta REM ha cambiado REM Los archivos de este script upzip ... > j_unzip.vbs ECHO ' >> j_unzip.vbs ECHO 'Descomprime un script de archivo >> j_unzip.vbs ECHO ' >> j_unzip.vbs ECHO '¡Es un desastre, lo sé! >> j_unzip.vbs ECHO ' >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO 'Dim ArgObj, var1, var2 >> j_unzip.vbs ECHO Set ArgObj = WScript.Argumentos >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO If (Wscript.Arguments.Count ^> 0) Entonces >> j_unzip.vbs ECHO. var1 = ArgObj (0) >> j_unzip.vbs ECHO Else >> j_unzip.vbs ECHO. var1 = "" >> j_unzip.vbs ECHO Finalizar si >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO If var1 = "" entonces >> j_unzip.vbs ECHO. strFileZIP = "ejemplo.zip" >> j_unzip.vbs ECHO Else >> j_unzip.vbs ECHO. strFileZIP = var1 >> j_unzip.vbs ECHO Finalizar si >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO 'La ubicación del archivo zip. >> j_unzip.vbs ECHO REM Establecer WshShell = CreateObject ("Wscript.Shell") >> j_unzip.vbs ECHO REM CurDir = WshShell.ExpandEnvironmentStrings ("%% cd %%") >> j_unzip.vbs ECHO Dim sCurPath >> j_unzip.vbs ECHO sCurPath = CreateObject ("Scripting.FileSystemObject"). GetAbsolutePathName (".") >> j_unzip.vbs ECHO strZipFile = sCurPath ^ & "\" ^ & strFileZIP >> j_unzip.vbs ECHO 'La carpeta a la que se debe extraer el contenido. >> j_unzip.vbs ECHO outFolder = sCurPath ^ & "\" >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO. WScript.Echo ("Extrayendo archivo" ^ & strFileZIP) >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO Set objShell = CreateObject ("Shell.Application") >> j_unzip.vbs ECHO Establecer objSource = objShell.NameSpace (strZipFile) .Items () >> j_unzip.vbs ECHO Set objTarget = objShell.NameSpace (outFolder) >> j_unzip.vbs ECHO intOptions = 256 >> j_unzip.vbs ECHO objTarget.CopyHere objSource, intOptions >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO. WScript.Echo ("Extraído") >> j_unzip.vbs ECHO.
Aquí hay un artículo sobre cómo acceder al manejo de archivos .ZIP de Windows incorporado con VBscript:
https://www.aspfree.com/c/a/Windows-Scripting/Compressed-Folders-in-WSH/
(El último código publicitario trata sobre la extracción)
Originalmente, los archivos ZIP se crearon con el software de línea de comandos MS-DOS de PKWare, los dos programas fueron PKZIP.EXE y PKUNZIP.EXE. Creo que todavía puede descargar PKUNZIP en el sitio PKWare aquí:
http://www.pkware.com/software-pkzip/dos-compression
La línea de comando real podría verse así:
C:\>pkunzip c:\myzipfile.zip c:\extracttothisfolder\
Toma un ejecutable de info-zip .
Info-ZIP admite hardware desde microcomputadoras hasta supercomputadoras Cray, ejecutándose en casi todas las versiones de Unix, VMS, OS / 2, Windows 9x / NT / etc. (también conocido como Win32), Windows 3.x, Windows CE, MS-DOS, AmigaDOS, Atari TOS, Acorn RISC OS, BeOS, Mac OS, SMS / QDOS, MVS y OS / 390 OE, VM / CMS, FlexOS, Tandem NSK y Human68K (japonés). También hay soporte (antiguo) para LynxOS, TOPS-20, AOS / VS y Novell NLM. Las bibliotecas compartidas (DLL) están disponibles para Unix, OS / 2, Win32 y Win16, y las interfaces gráficas están disponibles para Win32, Win16, WinCE y Mac OS.
Copie el siguiente código en un archivo por lotes y ejecútelo. A continuación se requiere que Winzip esté instalado / accesible desde su máquina. Cambie las variables según su necesidad.
@ECHO OFF
SET winzip_path="C:\Program Files\WinZip"
SET source_path="C:\Test"
SET output_path="C:\Output\"
SET log_file="C:\Test\unzip_log.txt"
SET file_name="*.zip"
cd %source_path%
echo Executing for %source_path% > %log_file%
FOR /f "tokens=*" %%G IN ('dir %file_name% /b') DO (
echo Processing : %%G
echo File_Name : %%G >> %log_file%
%winzip_path%\WINZIP32.EXE -e %%G %output_path%
)
PAUSE