it-swarm.com.de

Wie entpacke ich eine Datei über die Kommandozeile?

Welche Befehle können über die Befehlszeile zum Entpacken einer Datei verwendet werden?
Vorzugsweise etwas, das in Windows oder Open Source/kostenlose Tools integriert ist.

153
Th3Fix3r
46
Red33mer

Wenn Sie bereits Java auf Ihrem PC haben und sich das Verzeichnis bin in Ihrem Pfad befindet (in den meisten Fällen), 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

Kompletter Optionssatz für das JAR-Tool verfügbar hier .

Beispiele:

Extract jar file
    jar x[v]f jarfile [inputfiles] [-Joption] 
    jar x[v] [inputfiles] [-Joption]
207
Brian

Schreiben Sie zunächst ein Dekomprimierungsprogramm mit vbscript, um die native Dekomprimierungsfunktion in Windows auszulösen. Leiten Sie dann das Skript aus Ihrer Batch-Datei heraus und rufen Sie es dann auf. Dann ist es so gut wie alleine. Ich habe es in der Vergangenheit für zahlreiche Aufgaben gemacht. Auf diese Weise werden keine Anwendungen von Drittanbietern benötigt, sondern nur eine Batch-Datei, die alles erledigt.

Ich habe ein Beispiel in meinem Blog, wie man eine Datei mit einer Batch-Datei entpackt :

' 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"

Benutze es so:

cscript //B j_unzip.vbs Zip_file_name_goes_here.Zip
39
Justin Godden

7-Zip , es ist Open Source, kostenlos und unterstützt eine Vielzahl von Formaten.

7z.exe x myarchive.Zip
37
ninesided

Wie andere angedeutet haben, ist 7-Zip großartig.

Hinweis: Ich gehe zu Zip und entpacke dann eine Datei. 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 ein paar Möglichkeiten aufgezeigt.

-r ist rekursiv. In der Regel, was Sie mit Zip-Funktionalität wollen.

a steht für "Archiv". Das ist der Name der Ausgabe-Zip-Datei.

-p steht für ein Passwort (optional)

-w ist das Quellverzeichnis. Dadurch werden Ihre Dateien korrekt in der Zip-Datei verschachtelt, ohne dass zusätzliche Ordnerinformationen erforderlich sind.

-mem ist die Verschlüsselungsstärke.

Da sind andere. Aber das Obige bringt dich zum Laufen.

HINWEIS: Durch das Hinzufügen eines Kennworts wird die Zip-Datei beim Anzeigen der Datei über den Windows-Explorer unfreundlich. Der Client benötigt möglicherweise eine eigene Kopie von 7-Zip (oder winzip oder einer anderen), um den Inhalt der Datei anzuzeigen.

BEARBEITEN :::::::::::::::::: :( nur zusätzliche Sachen).

Es gibt eine "Kommandozeilen" -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

Also wäre der Zip-Befehl (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 den Teil entpacken : (um die gerade erstellte Datei zu entpacken)

"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

19
granadaCoder

Danke Rich, ich werde das zur Kenntnis nehmen. Hier ist also das Skript für meine eigene Lösung. Es sind keine Tools von Drittanbietern zum Entpacken erforderlich.

Fügen Sie das folgende Skript am Anfang der Batch-Datei ein, um die Funktion zu erstellen, und rufen Sie dann die Funktion mit dem folgenden Befehl auf: ... cscript /B j_unzip.vbs Zip_file_name_goes_here.Zip

Hier ist das Skript, um es an die Spitze zu setzen ...

 REM Ändern des Arbeitsordners in das aktuelle Verzeichnis aus Gründen der Vista & 7-Kompatibilität 
% ~ D0 
 CD% ~ dp0 
 REM-Ordner geändert 
 
 REM Dieses Skript komprimiert die Dateien ... 
 
> J_unzip.vbs ECHO '
 >> j_unzip.vbs ECHO' Dekomprimiert 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 Set ArgObj = WScript.Arguments 
 >> j_unzip.vbs ECHO. 
 >> j_unzip.vbs ECHO If (Wscript.Arguments.Count ^> 0) Dann 
 >> j_unzip.vbs ECHO. var1 = ArgObj (0) 
 >> j_unzip.vbs ECHO Andernfalls 
 >> 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 Andernfalls 
 >> 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 (".") 
 >> 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 ("Extracting file" ^ & strFileZIP) 
 >> j_unzip.vbs ECHO. 
 >> j_unzip.vbs ECHO Set objShell = CreateObject ("Shell.Application") 
 >> j_unzip.vbs ECHO Set objSource = objShell.NameSpace (strZ ipFile) .Items () 
 >> j_unzip.vbs ECHO Set objTarget = objShell.NameSpace (outFolder) 
 >> j_unzip.vbs ECHO intOptions = 256 
 >> j_unzip.vbs ECHO objTarget.CopyHier objSource, intOptions 
 >> j_unzip.vbs ECHO. 
 >> j_unzip.vbs ECHO. WScript.Echo ("Extrahiert") 
 >> j_unzip.vbs ECHO. 
10
Justin Godden

Hier finden Sie einen Artikel zum Umgang mit der in Windows integrierten ZIP-Datei mit VBscript:

https://www.aspfree.com/c/a/Windows-Scripting/Compressed-Folders-in-WSH/

(Der letzte Code Blurb befasst sich mit Extraktion)

8
Jon Bailey

Besorgen Sie sich eine ausführbare Datei von 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, RISC-Betriebssystem Acorn, BeOS, Mac OS, SMS/QDOS, MVS und OS/390 OE, VM/CMS, FlexOS, Tandem-NSK und Human68K (Japanisch). Es gibt auch eine (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.

2
gimel

Ursprünglich wurden Zip-Dateien mit MS-DOS-Befehlszeilensoftware von PKWare erstellt. Die beiden Programme waren PKZIP.EXE und PKUNZIP.EXE. Ich denke, Sie können PKUNZIP immer noch auf 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\
2
Michiel

Kopieren Sie den folgenden Code in eine Batch-Datei und führen Sie ihn aus. Nachfolgend wird vorausgesetzt, dass Winzip auf Ihrem Computer installiert/verfügbar ist. Ändern Sie die Variablen nach Ihren Wünschen.

@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
1
Sandeep Gaadhe