¿Cómo descomprimir un archivo usando la línea de comando? [cerrado]
164
¿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.
Una búsqueda rápida en Google arrojó esto . Eso funciona en Windows (no está claro si quiere decir que está utilizando Windows o si el sistema operativo es en realidad DOS).
Jeremy
26
A menos que esté ejecutando una versión muy antigua de Windows (ME o anterior), la línea de comando de Windows no es DOS. :)
Una pista. Necesita el JDK, y no solo el JRE si desea usar jar.
Qben
1
es extraño, m jar en realidad resuelve el problema parcialmente, porque es capaz de enumerar los archivos dentro del archivo y extraer los archivos especificados, sin embargo, no es posible extraer todos los archivos al mismo tiempo ... bastante extraño
mikus
@mikus: por qué no, solo usa el comando <code> jar.exe xvf Compressed.zip </code>
Xinus
1
java.io.FileNotFoundException: test.zip (El sistema no puede encontrar el archivo especificado)
markj
¿Hay alguna manera de especificar una carpeta de destino? (como cuando elige la opción extraer a)
Leonardo Alves Machado el
41
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.
' 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"
"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.
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.
hermoso :) Lo uso para descargar la línea de comando 7zip (cuyo ejecutable está comprimido (qué extraño))
Sebastian
Esto funciona como se esperaba, ahora puedo comprimir cualquier carpeta y hacer exe usando iexpress y descomprimir usando esto. ¿Funciona esto también en Windows 10?
Kiran Kumar
9
Aquí hay un artículo sobre cómo acceder al manejo de archivos .ZIP de Windows incorporado con VBscript:
No es fácil, pero parece ser una muy buena solución usando solo la funcionalidad de la carpeta zip nativa de Windows. He estado buscando algo por un tiempo. ¡Gracias!
Andre Steenveld
5
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í:
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
Exand-Archive
yCompress-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/
fuente
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:
o si no está en tu camino:
Conjunto completo de opciones para la herramienta jar disponible aquí .
Ejemplos:
fuente
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 :
Úselo así:
fuente
7-Zip , es de código abierto, gratuito y admite una amplia gama de formatos.
fuente
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
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).
Ahora la parte de descompresión : (para descomprimir el archivo que acaba de crear)
Como alternativa al argumento "e", hay un argumento ax.
Documentación aquí:
http://sevenzip.sourceforge.jp/chm/cmdline/commands/extract.htm
fuente
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 ...
fuente
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)
fuente
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í:
fuente
Toma un ejecutable de info-zip .
fuente
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.
fuente