Wie eine Datei über die Befehlszeile entpacken? [geschlossen]
Frage
Kann ich Entpacken von Dateien über die Befehlszeile? Vorzugsweise unter Verwendung von Open Source / Free-Tool.
Lösung
Sie können verwendet werden:
http://membrane.com/synapse/library/pkunzip.html
oder
7zip: http://www.7-zip.org/download.html
Free Byte zip: http://www.freebyte.com/fbzip/
oder infozip: http://infozip.sourceforge.net/
Andere Tipps
Wenn Sie bereits Java auf Ihrem PC haben, und das bin-Verzeichnis ist in Ihrem Pfad (in den meisten Fällen), können Sie die Befehlszeile verwenden:
jar xf test.zip
oder, wenn nicht in Ihrem Pfad:
C:\Java\jdk1.6.0_03\bin>jar xf test.zip
Das volle Spektrum der Optionen für die jar-Tool zur Verfügung hier .
Beispiele:
Extract jar file
jar x[v]f jarfile [inputfiles] [-Joption]
jar x[v] [inputfiles] [-Joption]
Zum einen schreiben Sie eine Entpackprogramm VBSript die native auspacken Funktion in Windows auszulösen. Dann Pfeife aus dem Skript aus Ihrer Batch-Datei und dann rufen. Dann ist es so gut wie allein. Ich habe für zahlreiche Aufgaben, die es in der Vergangenheit getan. So ist es nicht notwendig von Anwendungen von Drittanbietern erfordern, nur die eine Batch-Datei, die alles tut.
Ich habe ein Beispiel auf meinem Blog darüber, wie eine Datei mit einer Batch-Datei entpacken:
' 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 wie folgt aus:
cscript //B j_unzip.vbs zip_file_name_goes_here.zip
7-Zip , dann ist es Open Source frei und unterstützt eine breite Palette von Formaten .
7z.exe x myarchive.zip
Wie andere erwähnt haben, 7-Zip ist groß.
Hinweis: Ich werde zip und dann eine Datei entpacken. Entpacken Sie an der Unterseite ist.
Mein Beitrag:
Holen Sie sich das
7-Zip Kommandozeilenversion
Aktuelle URL
http://www.7-zip.org/download.html
Die Syntax?
Sie können die folgenden in eine .bat Datei setzen
"C:\Program Files\7-Zip\7z.exe" a MySuperCoolZipFile.zip "C:\MyFiles\*.jpg" -pmypassword -r -w"C:\MyFiles\" -mem=AES256
Ich habe ein paar Optionen gezeigt.
-r ist rekursiv. In der Regel, was Sie wollen mit Zip-Funktionalität.
a ist für "Archiv". Das ist der Name der Ausgabe Zip-Datei.
-p ist für ein Kennwort (optional)
-w ist das Quellverzeichnis. Dies wird Nest Dateien korrekt in der Zip-Datei, ohne zusätzliche Ordnerinformationen.
-mem ist die Verschlüsselungsstärke.
Es gibt andere. Aber die oben erhalten Sie ausgeführt wird.
Hinweis: ein Kennwort hinzufügen, wird die Zip-Datei unfreundlich, wenn es um die Anzeige der Datei über den Windows Explorer kommt. Der Kunde kann ihre eigene Kopie von 7-Zip (oder Winzip oder andere) benötigen Sie den Inhalt der Datei anzuzeigen.
EDIT ::::::::::: :( nur Extramaterial).
Es gibt eine „Kommandozeile“ Version, die wahrscheinlich besser geeignet dafür ist: http://www.7-zip.org/download.html
(Strom (zum Zeitpunkt des Schreibens) Link) http://sourceforge.net/projects/sevenzip/files /7-Zip/9.20/7za920.zip/download
So ist der zip-Befehl sei (mit der Befehlszeilenversion des 7-Zip-Tool).
"C:\WhereIUnzippedCommandLineStuff\7za.exe" a MySuperCoolZipFile.zip "C:\MyFiles\*.jpg" -pmypassword -r -w"C:\MyFiles\" -mem=AES256
Nun ist der unzip Teil : (entpacken Sie die Datei, die Sie gerade erstellt)
"C:\WhereIUnzippedCommandLineStuff\7zipCommandLine\7za.exe" e MySuperCoolZipFile.zip "*.*" -oC:\SomeOtherFolder\MyUnzippedFolder -pmypassword -y -r
Dokumentation hier:
http://sevenzip.sourceforge.jp/chm/cmdline/commands/ extract.htm
Danke Reich, werde ich zur Kenntnis nehmen. Also hier ist das Skript für meine eigene Lösung. Es erfordert keine dritte Partei unzip-Tools.
Fügen Sie das folgende Skript zu Beginn der Batchdatei die Funktion, zu erstellen und dann die Funktion aufrufen, ist der Befehl ...
cscript /B j_unzip.vbs zip_file_name_goes_here.zip
Hier ist das Skript an die Spitze hinzuzufügen ...
REM Changing working folder back to current directory for Vista & 7 compatibility %~d0 CD %~dp0 REM Folder changed REM This script upzip's files... > j_unzip.vbs ECHO ' >> j_unzip.vbs ECHO ' UnZip a file script >> j_unzip.vbs ECHO ' >> j_unzip.vbs ECHO ' It's a mess, I know!!! >> 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) Then >> j_unzip.vbs ECHO. var1 = ArgObj(0) >> j_unzip.vbs ECHO Else >> j_unzip.vbs ECHO. var1 = "" >> j_unzip.vbs ECHO End if >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO If var1 = "" then >> j_unzip.vbs ECHO. strFileZIP = "example.zip" >> j_unzip.vbs ECHO Else >> j_unzip.vbs ECHO. strFileZIP = var1 >> j_unzip.vbs ECHO End if >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO 'The location of the zip file. >> 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 'The folder the contents should be extracted to. >> j_unzip.vbs ECHO outFolder = sCurPath ^& "\" >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO. WScript.Echo ( "Extracting 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 ( "Extracted." ) >> j_unzip.vbs ECHO.
Es gibt einen Artikel auf immer zu dem integrierten Windows-ZIP-Datei mit VBscript Umgang hier:
https: //www.aspfree. com / c / a / Windows Scripting / Druck Ordner-in-WSH /
(Der letzte Code blurb befasst sich mit der Extraktion)
Schnappen Sie eine ausführbare Datei von Info-zip .
Info-ZIP unterstützt Hardware von Mikrocomputer den ganzen Weg bis zu Cray Supercomputer läuft auf fast allen Versionen von Unix, VMS, OS / 2, Windows 9x / NT / etc. (Aka Win32), Windows 3.x, Windows CE, MS-DOS, AmigaDOS, Atari TOS, Acorn RISC OS, BeOS, Mac OS, SMS / QDOS, MVS und OS / 390 OE, VM / CMS, FlexOS, Tandem NSK und Human68K (Japanisch). Es gibt auch einige (alt) Unterstützung für LynxOS, TOPS-20, AOS / VS und Novell NLMs. Shared Libraries (DLLs) sind für Unix, OS / 2, Win32 und Win16 und grafische Schnittstellen stehen zur Verfügung für Win32, Win16, WinCE und Mac OS.
Ursprünglich ZIP-Dateien mit MS-DOS-Befehlszeile-Software von PKWare erstellt wurden, waren die beiden Programme PKZIP.EXE und PKUNZIP.EXE. Ich glaube, Sie noch PKUNZIP am PKWare Website herunterladen können hier:
http://www.pkware.com/software-pkzip/dos-compression
Die tatsächliche Befehlszeile wie folgt aussehen könnte:
C:\>pkunzip c:\myzipfile.zip c:\extracttothisfolder\
Kopieren Sie den Code unten in eine Batch-Datei und auszuführen. Unten erfordert Winzip von Ihrem Gerät installiert / zugänglich werden. ändern Sie Variablen nach Ihrem 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