Frage

Kann ich Entpacken von Dateien über die Befehlszeile? Vorzugsweise unter Verwendung von Open Source / Free-Tool.

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top