Quali comandi possono essere utilizzati tramite la riga di comando per decomprimere un file?
Preferibilmente qualcosa integrato in Windows o strumenti open source / gratuiti.
Exand-Archive
e Compress-Archive
. Onora dove l'onore è dovuto.
Quali comandi possono essere utilizzati tramite la riga di comando per decomprimere un file?
Preferibilmente qualcosa integrato in Windows o strumenti open source / gratuiti.
Exand-Archive
e Compress-Archive
. Onora dove l'onore è dovuto.
Risposte:
Puoi usare:
http://membrane.com/synapse/library/pkunzip.html
o
7zip: http://www.7-zip.org/download.html
Zip byte gratuita : http://www.freebyte.com/fbzip/
o infozip: http://infozip.sourceforge.net/
powershell.exe -NoP -NonI -Command "Expand-Archive '.\file.zip' '.\unziped\'"
Se hai già java sul tuo PC e la directory bin è sul tuo percorso (nella maggior parte dei casi), puoi usare la riga di comando:
jar xf test.zip
o se non nel tuo percorso:
C:\Java\jdk1.6.0_03\bin>jar xf test.zip
Set completo di opzioni per lo strumento Jar disponibile qui .
Esempi:
Extract jar file
jar x[v]f jarfile [inputfiles] [-Joption]
jar x[v] [inputfiles] [-Joption]
Innanzitutto, scrivere un'utilità di decompressione utilizzando vbscript per attivare la funzionalità di decompressione nativa in Windows. Quindi eseguire il pipe dello script dal file batch e quindi chiamarlo. Quindi è buono come stand alone. L'ho fatto in passato per numerosi compiti. In questo modo non richiede la necessità di applicazioni di terze parti, solo un file batch che fa tutto.
Ho messo un esempio sul mio blog su come decomprimere un file usando un file batch :
' 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"
Usalo in questo modo:
cscript //B j_unzip.vbs zip_file_name_goes_here.zip
7-Zip , è open source, gratuito e supporta una vasta gamma di formati.
7z.exe x myarchive.zip
Come altri hanno accennato, 7-zip è fantastico.
Nota: ho intenzione di comprimere e quindi decomprimere un file. Unzip è in fondo.
Il mio contributo:
Ottenere l
Versione a riga di comando a 7 zip
URL corrente
http://www.7-zip.org/download.html
La sintassi?
È possibile inserire quanto segue in un file .bat
"C:\Program Files\7-Zip\7z.exe" a MySuperCoolZipFile.zip "C:\MyFiles\*.jpg" -pmypassword -r -w"C:\MyFiles\" -mem=AES256
Ho mostrato alcune opzioni.
-r è ricorsivo. Di solito quello che vuoi con la funzionalità zip.
a sta per "archivio". Questo è il nome del file zip di output.
-p è per una password (opzionale)
-w è una directory di origine. Ciò anniderà i file correttamente nel file zip, senza ulteriori informazioni sulla cartella.
-mem è il livello di crittografia.
Ce ne sono altri Ma quanto sopra ti farà correre.
NOTA: l'aggiunta di una password renderà il file zip ostile quando si tratta di visualizzare il file tramite Esplora risorse. Il client potrebbe aver bisogno della propria copia di 7-zip (o winzip o altro) per visualizzare il contenuto del file.
EDIT ::::::::::: :( solo cose extra).
Esiste una versione della "riga di comando" che probabilmente è più adatta a questo: http://www.7-zip.org/download.html
(collegamento diretto (al momento della stesura) diretto) http://sourceforge.net/projects/sevenzip/files/7-Zip/9.20/7za920.zip/download
Quindi il comando zip sarebbe (con la versione da riga di comando dello strumento 7 zip).
"C:\WhereIUnzippedCommandLineStuff\7za.exe" a MySuperCoolZipFile.zip "C:\MyFiles\*.jpg" -pmypassword -r -w"C:\MyFiles\" -mem=AES256
Ora la parte di decompressione : (per decomprimere il file appena creato)
"C:\WhereIUnzippedCommandLineStuff\7zipCommandLine\7za.exe" e MySuperCoolZipFile.zip "*.*" -oC:\SomeOtherFolder\MyUnzippedFolder -pmypassword -y -r
In alternativa all'argomento "e", c'è l'argomento ax.
e: Extract files from archive (without using directory names)
x: eXtract files with full paths
Documentazione qui:
http://sevenzip.sourceforge.jp/chm/cmdline/commands/extract.htm
Grazie Rich, ne prenderò nota. Quindi, ecco lo script per la mia soluzione. Non richiede strumenti di decompressione di terze parti.
Includi lo script seguente all'inizio del file batch per creare la funzione, quindi per chiamare la funzione, il comando è ...
cscript /B j_unzip.vbs zip_file_name_goes_here.zip
Ecco lo script da aggiungere all'inizio ...
REM Ripristino della cartella di lavoro alla directory corrente per compatibilità con Vista e 7 % ~ D0 CD% ~ dp0 Cartella REM modificata REM File di questo upzip di script ... > j_unzip.vbs ECHO ' >> j_unzip.vbs ECHO 'Decomprimi uno script di file >> j_unzip.vbs ECHO ' >> j_unzip.vbs ECHO 'È un casino, lo so !!! >> j_unzip.vbs ECHO ' >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO 'Dim ArgObj, var1, var2 >> j_unzip.vbs ECHO Set ArgObj = WScript.Arguments >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO If (Wscript.Arguments.Count ^> 0) Quindi >> j_unzip.vbs ECHO. var1 = ArgObj (0) >> j_unzip.vbs ECHO Altro >> j_unzip.vbs ECHO. var1 = "" >> j_unzip.vbs ECHO End if >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO Se var1 = "" allora >> j_unzip.vbs ECHO. strFileZIP = "example.zip" >> j_unzip.vbs ECHO Altro >> j_unzip.vbs ECHO. strFileZIP = var1 >> j_unzip.vbs ECHO End if >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO 'La posizione del file zip. >> j_unzip.vbs ECHO REM Set 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 cartella in cui estrarre i contenuti. >> j_unzip.vbs ECHO outFolder = sCurPath ^ & "\" >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO. WScript.Echo ("Estrazione del file" ^ & strFileZIP) >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO Set objShell = CreateObject ("Shell.Application") >> j_unzip.vbs ECHO Set 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 ("Estratto.") >> j_unzip.vbs ECHO.
C'è un articolo su come accedere alla gestione dei file .ZIP di Windows integrata con VBscript qui:
https://www.aspfree.com/c/a/Windows-Scripting/Compressed-Folders-in-WSH/
(L'ultimo codice blurb si occupa dell'estrazione)
Inizialmente i file ZIP venivano creati con il software della riga di comando MS-DOS di PKWare, i due programmi erano PKZIP.EXE e PKUNZIP.EXE. Penso che puoi ancora scaricare PKUNZIP dal sito PKWare qui:
http://www.pkware.com/software-pkzip/dos-compression
La riga di comando effettiva potrebbe essere simile a questa:
C:\>pkunzip c:\myzipfile.zip c:\extracttothisfolder\
Prendi un eseguibile da info-zip .
Info-ZIP supporta l'hardware dai microcomputer fino ai supercomputer Cray, in esecuzione su quasi tutte le versioni di Unix, VMS, OS / 2, Windows 9x / NT / ecc. (aka Win32), Windows 3.x, Windows CE, MS-DOS, AmigaDOS, Atari TOS, Acorn RISC OS, BeOS, Mac OS, SMS / QDOS, MVS e OS / 390 OE, VM / CMS, FlexOS, Tandem NSK e Human68K (giapponese). C'è anche un po '(vecchio) supporto per LynxOS, TOPS-20, AOS / VS e Novell NLM. Librerie condivise (DLL) sono disponibili per Unix, OS / 2, Win32 e Win16 e sono disponibili interfacce grafiche per Win32, Win16, WinCE e Mac OS.
Copia il codice seguente in un file batch ed eseguilo. Di seguito è necessario che Winzip sia installato / accessibile dal tuo computer. Cambia le variabili secondo le tue necessità.
@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