2009-06-20 26 views
112

क्या मैं कमांड लाइन के माध्यम से फ़ाइलों को अनजिप कर सकता हूं? अधिमानतः ओपन सोर्स/फ्री टूल्स का उपयोग करना।कमांड लाइन का उपयोग कर फ़ाइल को अनजिप कैसे करें?

+22

जब तक आप विंडोज़ (एमई या पहले) का वास्तव में पुराना संस्करण नहीं चला रहे हैं, तो विंडोज कमांड लाइन डॉस नहीं है। :) –

+1

एक त्वरित Google खोज चालू [यह] (http://dotnetperls.com/7-zip-examples)। यही कारण है कि खिड़कियों में काम करता है (यह स्पष्ट नहीं है कि क्या आप का मतलब है कि आप Windows का उपयोग कर रहे हैं, या ओएस वास्तव में डॉस है)। – Jeremy

उत्तर

36

आप इस्तेमाल कर सकते हैं:

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

या

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

नि: शुल्क बाइट zip: http://www.freebyte.com/fbzip/

या infozip: http://infozip.sourceforge.net/

+10

पहले सूचीबद्ध URL इस प्रकार 64 ऑपरेटिंग सिस्टम पर काम नहीं करता है एक सच्चे 16-बिट अनुप्रयोग है,। बिलकुल चौकन्ना। –

2

info-zip से निष्पादन योग्य प्राप्त करें।

इन्फो-ज़िप माइक्रो सुपरकंप्यूटर तक माइक्रोवेम्प्यूटर्स से हार्डवेयर का समर्थन करता है, जो यूनिक्स, वीएमएस, ओएस/2, विंडोज 9एक्स/एनटी/आदि के लगभग सभी संस्करणों पर चल रहा है। (उर्फ विन 32), विंडोज 3.x, विंडोज सीई, एमएस-डॉस, अमिगा डीओएस, अटारी टीओएस, एकोर्न आरआईएससी ओएस, बीओएस, मैक ओएस, एसएमएस/क्यूडीओएस, एमवीएस और ओएस/3 9 0 ओई, वीएम/सीएमएस, फ्लेक्सोस, टंडेम एनएसके और मानव 68 के (जापानी)। लिंक्सोस, TOPS-20, एओएस/वीएस और नोवेल एनएलएम के लिए कुछ (पुराने) समर्थन भी है। यूनिक्स, ओएस/2, विन 32 और विन 16 के लिए साझा लाइब्रेरी (डीएलएल) उपलब्ध हैं, और ग्राफिकल इंटरफेस Win32, Win16, WinCE और Mac OS के लिए उपलब्ध हैं।

23

7-Zip, यह खुला स्रोत है, मुफ्त और प्रारूपों की एक विस्तृत श्रृंखला का समर्थन करता है।

7z.exe x myarchive.zip 
1

मूल रूप से ज़िप फ़ाइलों PKWare से MS-DOS कमांड लाइन सॉफ्टवेयर के साथ बनाया गया था, दो कार्यक्रमों PKZIP.EXE और PKUNZIP.EXE थे।

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

वास्तविक कमांड लाइन कुछ इस तरह दिखाई दे सकता है:: मैं आप अभी भी यहाँ PKWare स्थल पर PKUNZIP डाउनलोड कर सकते हैं लगता है

C:\>pkunzip c:\myzipfile.zip c:\extracttothisfolder\ 
175

आप पहले से ही अपने पीसी पर जावा है, और बिन निर्देशिका (अधिकांश मामलों में) अपने रास्ते में है, तो आप कमांड लाइन का उपयोग कर सकते हैं:

jar xf test.zip 

या अपने रास्ते में नहीं तो:

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

here उपलब्ध जार टूल के विकल्पों का पूरा सेट उपलब्ध है।

उदाहरण:

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

(पिछले कोड blurb निकासी से संबंधित है:

Extract jar file 
    jar x[v]f jarfile [inputfiles] [-Joption] 
    jar x[v] [inputfiles] [-Joption] 
+23

एक संकेत। यदि आप जार का उपयोग करना चाहते हैं तो आपको जेडीके की आवश्यकता है, न सिर्फ जेआरई। – Qben

+1

यह अजीब है संभव नहीं एक ही समय में सभी फाइलों को निकालने के लिए बहुत अजीब है, मीटर जार वास्तव में, आंशिक रूप से समस्या का हल कारण यह संग्रह के अंदर फ़ाइलों की सूची और निर्दिष्ट फ़ाइलों को अलग करने में सक्षम है, तथापि, यह ... – mikus

+0

@ मिकस: क्यों नहीं, बस jar.exe xvf Compressed.zip Xinus

8

वहाँ में निर्मित यहां VBscript के साथ निपटने के लिए Windows .ZIP फ़ाइल के लिए हो रही है पर एक लेख है)

+0

यह आसान नहीं है लेकिन यह केवल मूल विंडोज़ ज़िप फ़ोल्डर का उपयोग करके एक बहुत अच्छा समाधान प्रतीत होता है कार्यक्षमता। मैं थोड़ी देर के लिए कुछ ढूंढ रहा हूं। धन्यवाद! – Dre

35

सबसे पहले, विंडोज़ में देशी अनजिप कार्यक्षमता को ट्रिगर करने के लिए vbscript का उपयोग करके एक अनजिप उपयोगिता लिखें। फिर अपनी बैच फ़ाइल के भीतर से स्क्रिप्ट को पाइप करें और फिर इसे कॉल करें। फिर यह अकेले खड़े होने के समान अच्छा है।मैंने इसे अतीत में कई कार्यों के लिए किया है। इस तरह इसे तीसरे पक्ष के अनुप्रयोगों की आवश्यकता नहीं होती है, केवल एक बैच फ़ाइल जो सबकुछ करती है।

मैं an example on my blog on how to unzip a file using a batch file डाल:

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

इस तरह यह प्रयोग करें:

cscript //B j_unzip.vbs zip_file_name_goes_here.zip 
+3

आमतौर पर कोड को आपके उत्तर में रखने के लिए अच्छा माना जाता है, और आमतौर पर कोड के लिए लिंक करने के लिए बुरा होता है - बस एक सिर ऊपर! –

9

धन्यवाद अमीर, मुझे लगता है कि को ध्यान में रखना होगा। तो यहां मेरे अपने समाधान के लिए स्क्रिप्ट है। इसके लिए कोई तीसरी पार्टी अनजिप टूल्स की आवश्यकता नहीं है।

समारोह बनाने के लिए, और फिर कॉल करने के लिए समारोह, आदेश है ... cscript /B j_unzip.vbs zip_file_name_goes_here.zip

यहाँ शीर्ष में जोड़ने के लिए स्क्रिप्ट है बैच फ़ाइल के शुरू में नीचे स्क्रिप्ट सम्मिलित करें ..

 
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. 
+2

सुंदर :) मैं इस का उपयोग 7zip कमांड लाइन डाउनलोड करने के लिए (जिसका निष्पादन ज़िप किया गया है (कैसे अजीब)) – Sebastian

+0

यह काम कर रहा है के रूप में उम्मीद, अब मैं किसी भी फ़ोल्डर ज़िप और IExpress का उपयोग कर exe बनाने के लिए और इस का उपयोग करते हुए अनज़िप कर सकते हैं। क्या यह विंडोज़ 10 में भी काम करता है। – Developer

13

जैसा कि अन्य ने बताया है, 7-ज़िप बहुत अच्छा है।

नोट: मैं ज़िप करने जा रहा हूं और फिर फ़ाइल को अनजिप कर रहा हूं। अनजिप नीचे है।

मेरे योगदान:

7-ज़िप कमांड लाइन संस्करण

वर्तमान यूआरएल

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

वाक्य रचना प्राप्त करें?

आप

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

मैं कुछ ही विकल्प दिखाया है एक .bat फ़ाइल में निम्न डाल सकते हैं।

-r रिकर्सिव है। आमतौर पर आप ज़िप कार्यक्षमता के साथ क्या चाहते हैं।

ए "संग्रह" के लिए है। यह आउटपुट ज़िप फ़ाइल का नाम है।

-p

डब्ल्यू एक स्रोत निर्देशिका है एक पासवर्ड (वैकल्पिक) के लिए है। यह अतिरिक्त फ़ाइलों की जानकारी के बिना, ज़िप फ़ाइल में आपकी फ़ाइलों को सही ढंग से घोंसला देगा।

-mem एन्क्रिप्शन शक्ति है।

अन्य भी हैं। लेकिन उपर्युक्त आप चलेंगे।

नोट: पासवर्ड जोड़ने से विंडोज एक्सप्लोरर के माध्यम से फ़ाइल देखने की बात आती है तो ज़िप फ़ाइल असभ्य हो जाएगी। फ़ाइल की सामग्री देखने के लिए ग्राहक को 7-ज़िप (या winzip या अन्य) की अपनी प्रति की आवश्यकता हो सकती है।

EDIT :::::::::::(बस अतिरिक्त सामान)। http://sourceforge.net/projects/sevenzip/files/7-Zip/9.20/7za920.zip/download

तो ज़िप आदेश होगा (लेखन के समय) सीधा लिंक पर वर्तमान() http://www.7-zip.org/download.html

:

एक "कमांड लाइन" संस्करण है जो शायद बेहतर इस के लिए अनुकूल है नहीं है हो (7 ज़िप उपकरण के कमांड लाइन संस्करण के साथ)।

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

अब unzip भाग:

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

यहाँ प्रलेखन (आपने अभी बनाया फ़ाइल अनज़िप करने): एक बैच फ़ाइल को

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

+0

किसने मेरी प्रतिक्रिया को कम किया? दुनिया में क्या है? मैंने एक स्वीकार्य समाधान पर विस्तार से बताया। गीज़ लुईस। – granadaCoder

+0

सवाल एक फ़ाइल अनज़िप करने के लिए कैसे है। आप उलटा करने के तरीके को समझा रहे हैं। – utapyngo

+0

मैंने अनजिप के लिए अपडेट किया। डी 'ओह! (मुझ पर)। – granadaCoder

1

कॉपी नीचे कोड और निष्पादित करें। नीचे Winzip को आपकी मशीन से स्थापित/सुलभ करने की आवश्यकता है। अपनी ज़रूरत के अनुसार परिवर्तनीय परिवर्तन करें।

@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 
संबंधित मुद्दे