Bagaimana cara unzip file menggunakan baris perintah? [Tutup]

164

Perintah mana yang dapat digunakan melalui baris perintah untuk membuka zip file?
Lebih disukai sesuatu yang dibangun ke dalam Windows atau open source / alat gratis.

Chris Sainty
sumber
1
Pencarian Google cepat muncul ini . Itu bekerja di windows (tidak jelas apakah Anda bermaksud menggunakan Windows, atau OS sebenarnya DOS).
Jeremy
26
Kecuali jika Anda menjalankan versi windows yang sangat lama (ME atau yang lebih lama), baris perintah windows bukanlah DOS. :)
Tyler McHenry
Cara termudah untuk unzip file menggunakan unzip.exe. Contoh: unzip.exe source.zip -d target_dir. URL: stahlworks.com/dev/index.php?tool=zipunzip
zappee
2
Windows dengan Powershell5 dapat melakukannya secara native dengan Exand-Archivedan Compress-Archive. Hormati di mana kehormatan itu jatuh tempo.
LosManos
1
unzip [nama file] .zip
Amranur Rahman

Jawaban:

53

Anda bisa menggunakan:

http://membrane.com/synapse/library/pkunzip.html

atau

7zip: http://www.7-zip.org/download.html

Zip byte gratis : http://www.freebyte.com/fbzip/

atau infozip: http://infozip.sourceforge.net/

Red33mer
sumber
11
URL pertama yang terdaftar adalah aplikasi 16-bit yang sebenarnya, sehingga tidak berfungsi pada sistem operasi x64. Hanya kepala.
Mark Henderson
38
Jika Anda menggunakan Windows 7 atau 10 dengan PowerShell, Anda dapat menggunakan:powershell.exe -NoP -NonI -Command "Expand-Archive '.\file.zip' '.\unziped\'"
AK_
@AK_ bagaimana dengan Windows 8 atau 8.1?
Frank Vu
2
@AK_ Anda harus menjawabnya sendiri.
BrainStone
221

Jika Anda sudah memiliki java pada PC Anda, dan direktori bin berada di jalur Anda (dalam kebanyakan kasus), Anda dapat menggunakan baris perintah:

jar xf test.zip

atau jika tidak di jalur Anda:

C:\Java\jdk1.6.0_03\bin>jar xf test.zip

Set lengkap opsi untuk alat jar tersedia di sini .

Contoh:

Extract jar file
    jar x[v]f jarfile [inputfiles] [-Joption] 
    jar x[v] [inputfiles] [-Joption]
Brian
sumber
37
Petunjuk. Anda membutuhkan JDK, dan bukan hanya JRE jika Anda ingin menggunakan jar.
Qben
1
itu aneh, m jar sebenarnya memecahkan masalah sebagian, karena ia dapat membuat daftar file di dalam arsip dan mengekstrak file yang ditentukan, namun, tidak mungkin untuk mengekstrak semua file pada saat yang sama ... cukup aneh
mikus
@mikus: mengapa tidak, cukup gunakan perintah <code> jar.exe xvf Compressed.zip </code>
Xinus
1
java.io.FileNotFoundException: test.zip (Sistem tidak dapat menemukan file yang ditentukan)
markj
Apakah ada cara untuk menentukan folder tujuan? (seperti ketika Anda memilih opsi ekstrak-ke)?
Leonardo Alves Machado
41

Pertama, tulis utilitas unzip menggunakan vbscript untuk memicu fungsionalitas unzip asli di Windows. Kemudian pipa keluar skrip dari dalam file batch Anda dan kemudian panggil. Maka itu sama saja dengan berdiri sendiri. Saya sudah melakukannya di masa lalu untuk banyak tugas. Dengan cara ini tidak memerlukan aplikasi pihak ketiga, hanya satu file batch yang melakukan segalanya.

Saya memberi contoh di blog saya tentang cara unzip file menggunakan 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"

Gunakan seperti ini:

cscript //B j_unzip.vbs zip_file_name_goes_here.zip
Justin Godden
sumber
3
Secara umum dianggap baik untuk memasukkan kode ke dalam jawaban Anda, dan umumnya buruk untuk menautkan kode - hanya perlu kepala!
Rich Bradshaw
39

7-Zip , ini open source, gratis dan mendukung berbagai format.

7z.exe x myarchive.zip
tanpa tujuan
sumber
1
jika konten yang diekstraksi sudah ada, dan Anda ingin mengganti konten yang ada tanpa diminta, maka gunakan "7z.exe x -y myarchive.zip"
Suketu Bhuta
22

Seperti yang disinggung lain, 7-zip itu bagus.

Catatan: Saya akan zip dan kemudian unzip file. Unzip ada di bawah.

Kontribusi saya:

Ambil

Versi 7-Zip Command Line

URL saat ini

http://www.7-zip.org/download.html

Sintaksnya?

Anda dapat memasukkan yang berikut ini ke file .bat

"C:\Program Files\7-Zip\7z.exe" a MySuperCoolZipFile.zip "C:\MyFiles\*.jpg" -pmypassword -r -w"C:\MyFiles\" -mem=AES256

Saya telah menunjukkan beberapa opsi.

-r bersifat rekursif. Biasanya apa yang Anda inginkan dengan fungsionalitas zip.

a adalah untuk "arsip". Itulah nama file zip keluaran.

-p adalah untuk kata sandi (opsional)

-w adalah direktori sumber. Ini akan menyarangkan file Anda dengan benar di file zip, tanpa informasi folder tambahan.

-mem adalah kekuatan enkripsi.

Ada yang lain. Tetapi hal di atas akan membuat Anda berjalan.

CATATAN: Menambahkan kata sandi akan membuat file zip tidak ramah ketika harus melihat file melalui Windows Explorer. Klien mungkin perlu salinan 7-zip mereka sendiri (atau winzip atau lainnya) untuk melihat isi file.

EDIT ::::::::::: :( hanya barang tambahan).

Ada versi "baris perintah" yang mungkin lebih cocok untuk ini: http://www.7-zip.org/download.html

(tautan saat ini (saat penulisan)) http://sourceforge.net/projects/sevenzip/files/7-Zip/9.20/7za920.zip/download

Jadi perintah zip akan menjadi (dengan versi baris perintah dari alat zip 7).

"C:\WhereIUnzippedCommandLineStuff\7za.exe" a MySuperCoolZipFile.zip "C:\MyFiles\*.jpg" -pmypassword -r -w"C:\MyFiles\" -mem=AES256

Sekarang bagian unzip : (untuk unzip file yang baru saja Anda buat)

"C:\WhereIUnzippedCommandLineStuff\7zipCommandLine\7za.exe" e MySuperCoolZipFile.zip "*.*" -oC:\SomeOtherFolder\MyUnzippedFolder -pmypassword -y -r

Sebagai alternatif dari argumen "e", ada argumen kapak.

  e: Extract files from archive (without using directory names)
  x: eXtract files with full paths

Dokumentasi di sini:

http://sevenzip.sourceforge.jp/chm/cmdline/commands/extract.htm

granadaCoder
sumber
11

Terima kasih Rich, saya akan mencatatnya. Jadi ini skrip untuk solusi saya sendiri. Tidak memerlukan alat unzip pihak ketiga.

Sertakan skrip di bawah ini pada awal file batch untuk membuat fungsi, dan kemudian memanggil fungsi, perintahnya adalah ... cscript /B j_unzip.vbs zip_file_name_goes_here.zip

Berikut ini skrip untuk ditambahkan ke atas ...

REM Mengubah folder yang berfungsi kembali ke direktori saat ini untuk kompatibilitas Vista & 7
% ~ d0
CD% ~ dp0
Folder REM berubah

REM File skrip upzip ini ...

    > j_unzip.vbs ECHO '
    >> j_unzip.vbs ECHO 'Unzip skrip file
    >> j_unzip.vbs ECHO '
    >> j_unzip.vbs ECHO 'Ini berantakan, saya tahu !!!
    >> 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) Kemudian
    >> j_unzip.vbs ECHO. var1 = ArgObj (0)
    >> j_unzip.vbs ECHO Lain
    >> j_unzip.vbs ECHO. var1 = ""
    >> j_unzip.vbs ECHO Akhiri jika
    >> j_unzip.vbs ECHO.
    >> j_unzip.vbs ECHO If var1 = "" lalu
    >> j_unzip.vbs ECHO. strFileZIP = "example.zip"
    >> j_unzip.vbs ECHO Lain
    >> j_unzip.vbs ECHO. strFileZIP = var1
    >> j_unzip.vbs ECHO Akhiri jika
    >> j_unzip.vbs ECHO.
    >> j_unzip.vbs ECHO 'Lokasi 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 'Folder yang isinya harus diekstraksi.
    >> j_unzip.vbs ECHO outFolder = sCurPath ^ & "\"
    >> j_unzip.vbs ECHO.
    >> j_unzip.vbs ECHO. WScript.Echo ("Mengekstrak 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 Tetapkan 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 ("Diekstraksi.")
    >> j_unzip.vbs ECHO.
Justin Godden
sumber
2
indah :) Saya menggunakan ini untuk mengunduh baris perintah 7zip (yang dapat dieksekusi di-zip (aneh))
Sebastian
Ini berfungsi seperti yang diharapkan, sekarang saya bisa zip folder apa saja dan membuat exe menggunakan iexpress dan unzip menggunakan ini. Apakah ini berfungsi di windows 10 juga.
Kiran Kumar
9

Ada artikel tentang mendapatkan penanganan file .ZIP Windows bawaan dengan VBscript di sini:

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

(Kode uraian terakhir berkaitan dengan ekstraksi)

Jon Bailey
sumber
Ini tidak mudah tetapi ini tampaknya menjadi solusi yang sangat baik hanya menggunakan fungsionalitas folder zip windows asli. Saya telah mencari sesuatu ini untuk sementara waktu. Terima kasih!
Andre Steenveld
5

Awalnya file ZIP dibuat dengan perangkat lunak MS-DOS command line dari PKWare, kedua program tersebut adalah PKZIP.EXE dan PKUNZIP.EXE. Saya pikir Anda masih dapat mengunduh PKUNZIP di situs PKWare di sini:

http://www.pkware.com/software-pkzip/dos-compression

Baris perintah yang sebenarnya bisa terlihat seperti ini:

C:\>pkunzip c:\myzipfile.zip c:\extracttothisfolder\
Michiel
sumber
1
Itu oldSchool!
granadaCoder
3

Ambil executable dari info-zip .

Info-ZIP mendukung perangkat keras dari mikrokomputer hingga superkomputer Cray, berjalan di hampir semua versi Unix, VMS, OS / 2, Windows 9x / NT / dll. (alias Win32), Windows 3.x, Windows CE, MS-DOS, AmigaDOS, TOS Atari, OS RISC Acorn, BeOS, Mac OS, SMS / QDOS, MVS dan OS / 390 OE, VM / CMS, FlexOS, Tandem NSK dan Human68K (Jepang). Ada juga beberapa (lama) dukungan untuk LynxOS, TOPS-20, AOS / VS dan Novell NLMs. Shared libraries (DLLs) tersedia untuk Unix, OS / 2, Win32 dan Win16, dan antarmuka grafis tersedia untuk Win32, Win16, WinCE dan Mac OS.

Gimel
sumber
1

Salin kode di bawah ini ke file batch dan jalankan. Di bawah ini mengharuskan Winzip diinstal / dapat diakses dari mesin Anda. Ubah variabel sesuai kebutuhan Anda.

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