Which commands can be used via the command line to unzip a file?
Preferably something built into Windows or open source/free tools.
Exand-Archive
and Compress-Archive
. Honour where honour is due.
Which commands can be used via the command line to unzip a file?
Preferably something built into Windows or open source/free tools.
Exand-Archive
and Compress-Archive
. Honour where honour is due.
Antworten:
You could use :
http://membrane.com/synapse/library/pkunzip.html
or
7zip: http://www.7-zip.org/download.html
Free byte zip: http://www.freebyte.com/fbzip/
or infozip: http://infozip.sourceforge.net/
powershell.exe -NoP -NonI -Command "Expand-Archive '.\file.zip' '.\unziped\'"
Wenn Sie bereits Java auf Ihrem PC haben und sich das bin-Verzeichnis (in den meisten Fällen) in Ihrem Pfad befindet, können Sie die folgende Befehlszeile verwenden:
jar xf test.zip
oder wenn nicht auf deinem Weg:
C:\Java\jdk1.6.0_03\bin>jar xf test.zip
Komplette Optionen für das JAR-Tool finden Sie hier .
Beispiele:
Extract jar file
jar x[v]f jarfile [inputfiles] [-Joption]
jar x[v] [inputfiles] [-Joption]
Schreiben Sie zunächst ein Entpackungsdienstprogramm mit vbscript, um die native Entpackungsfunktion in Windows auszulösen. Leiten Sie dann das Skript aus Ihrer Batch-Datei heraus und rufen Sie es auf. Dann ist es so gut wie allein. Ich habe es in der Vergangenheit für zahlreiche Aufgaben getan. Auf diese Weise sind keine Anwendungen von Drittanbietern erforderlich, sondern nur die eine Batchdatei, die alles erledigt.
Ich habe in meinem Blog ein Beispiel zum Entpacken einer Datei mithilfe einer Batch-Datei veröffentlicht :
' 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"
Verwenden Sie es so:
cscript //B j_unzip.vbs zip_file_name_goes_here.zip
7-Zip ist Open Source, kostenlos und unterstützt eine Vielzahl von Formaten.
7z.exe x myarchive.zip
Wie andere angedeutet haben, ist 7-Zip großartig.
Hinweis: Ich werde eine Datei komprimieren und dann entpacken. Entpacken ist unten.
Mein Beitrag:
Bekommen das
7-Zip-Befehlszeilenversion
Aktuelle URL
http://www.7-zip.org/download.html
Die Syntax?
Sie können Folgendes in eine .bat-Datei einfügen
"C:\Program Files\7-Zip\7z.exe" a MySuperCoolZipFile.zip "C:\MyFiles\*.jpg" -pmypassword -r -w"C:\MyFiles\" -mem=AES256
Ich habe einige Optionen gezeigt.
-r ist rekursiv. Normalerweise was Sie mit Zip-Funktionalität wollen.
a ist für "Archiv". Das ist der Name der Ausgabe-Zip-Datei.
-p ist für ein Passwort (optional)
-w ist das Quellverzeichnis. Dadurch werden Ihre Dateien ohne zusätzliche Ordnerinformationen korrekt in der Zip-Datei verschachtelt.
-mem ist die Verschlüsselungsstärke.
Da sind andere. Aber das oben Genannte bringt Sie zum Laufen.
HINWEIS: Durch Hinzufügen eines Kennworts wird die Zip-Datei unfreundlich, wenn die Datei über den Windows Explorer angezeigt wird. Der Client benötigt möglicherweise eine eigene Kopie von 7-zip (oder winzip oder einem anderen), um den Inhalt der Datei anzuzeigen.
EDIT :::::::::::: (nur zusätzliche Sachen).
Es gibt eine "Befehlszeilen" -Version, die wahrscheinlich besser dafür geeignet ist: http://www.7-zip.org/download.html
(aktueller (zum Zeitpunkt des Schreibens) direkter Link) http://sourceforge.net/projects/sevenzip/files/7-Zip/9.20/7za920.zip/download
Der Befehl zip wäre also (mit der Befehlszeilenversion des 7-Zip-Tools).
"C:\WhereIUnzippedCommandLineStuff\7za.exe" a MySuperCoolZipFile.zip "C:\MyFiles\*.jpg" -pmypassword -r -w"C:\MyFiles\" -mem=AES256
Nun der Entpackungsabschnitt : (um die gerade erstellte Datei zu entpacken)
"C:\WhereIUnzippedCommandLineStuff\7zipCommandLine\7za.exe" e MySuperCoolZipFile.zip "*.*" -oC:\SomeOtherFolder\MyUnzippedFolder -pmypassword -y -r
Als Alternative zum Argument "e" gibt es das Argument ax.
e: Extract files from archive (without using directory names)
x: eXtract files with full paths
Dokumentation hier:
http://sevenzip.sourceforge.jp/chm/cmdline/commands/extract.htm
Danke Rich, das werde ich zur Kenntnis nehmen. Hier ist das Skript für meine eigene Lösung. Es sind keine Entpackungs-Tools von Drittanbietern erforderlich.
Fügen Sie das folgende Skript am Anfang der Batchdatei ein, um die Funktion zu erstellen. Um die Funktion aufzurufen, lautet der Befehl ...
cscript /B j_unzip.vbs zip_file_name_goes_here.zip
Hier ist das Skript, das oben hinzugefügt werden soll ...
REM Ändern des Arbeitsordners aus Gründen der Vista & 7-Kompatibilität zurück in das aktuelle Verzeichnis % ~ d0 CD% ~ dp0 REM-Ordner geändert REM Die Dateien dieses Skripts upzip ... > j_unzip.vbs ECHO ' >> j_unzip.vbs ECHO 'Entpacke ein Dateiskript >> j_unzip.vbs ECHO ' >> j_unzip.vbs ECHO 'Es ist ein Durcheinander, ich weiß !!! >> j_unzip.vbs ECHO ' >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO 'Dim ArgObj, var1, var2 >> j_unzip.vbs ECHO Setze ArgObj = WScript.Arguments >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO If (Wscript.Arguments.Count ^> 0) Then >> j_unzip.vbs ECHO. var1 = ArgObj (0) >> j_unzip.vbs ECHO Sonst >> j_unzip.vbs ECHO. var1 = "" >> j_unzip.vbs ECHO End if >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO Wenn var1 = "" dann >> j_unzip.vbs ECHO. strFileZIP = "example.zip" >> j_unzip.vbs ECHO Sonst >> j_unzip.vbs ECHO. strFileZIP = var1 >> j_unzip.vbs ECHO End if >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO 'Der Speicherort der Zip-Datei. >> 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 'Der Ordner, in den der Inhalt extrahiert werden soll. >> j_unzip.vbs ECHO outFolder = sCurPath ^ & "\" >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO. WScript.Echo ("Datei extrahieren" ^ & strFileZIP) >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO Set objShell = CreateObject ("Shell.Application") >> j_unzip.vbs ECHO Setze objSource = objShell.NameSpace (strZipFile) .Items () >> j_unzip.vbs ECHO Setze 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 ("Extrahiert") >> j_unzip.vbs ECHO.
Hier finden Sie einen Artikel zum Einstieg in die integrierte Windows .ZIP-Dateiverwaltung mit VBscript:
https://www.aspfree.com/c/a/Windows-Scripting/Compressed-Folders-in-WSH/
(Der letzte Code-Klappentext befasst sich mit der Extraktion)
Ursprünglich wurden ZIP-Dateien mit der MS-DOS-Befehlszeilensoftware von PKWare erstellt. Die beiden Programme waren PKZIP.EXE und PKUNZIP.EXE. Ich denke, Sie können PKUNZIP immer noch von der PKWare-Site hier herunterladen:
http://www.pkware.com/software-pkzip/dos-compression
Die eigentliche Befehlszeile könnte ungefähr so aussehen:
C:\>pkunzip c:\myzipfile.zip c:\extracttothisfolder\
Besorgen Sie sich eine ausführbare Datei aus info-zip .
Info-ZIP unterstützt Hardware von Mikrocomputern bis hin zu Cray-Supercomputern und läuft auf fast allen Versionen von Unix, VMS, OS / 2, Windows 9x / NT / etc. (auch bekannt als Win32), Windows 3.x, Windows CE, MS-DOS, AmigaDOS, Atari TOS, Acorn RISC-Betriebssystem, BeOS, Mac OS, SMS / QDOS, MVS und OS / 390 OE, VM / CMS, FlexOS, Tandem-NSK und Human68K (Japanisch). Es gibt auch einige (alte) Unterstützung für LynxOS-, TOPS-20-, AOS / VS- und Novell-NLMs. Shared Libraries (DLLs) sind für Unix, OS / 2, Win32 und Win16 verfügbar, und grafische Oberflächen sind für Win32, Win16, WinCE und Mac OS verfügbar.
Kopieren Sie den folgenden Code in eine Batchdatei und führen Sie ihn aus. Im Folgenden muss Winzip von Ihrem Computer aus installiert sein / darauf zugreifen können. Ändern Sie die Variablen nach Bedarf.
@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