आप केवल Windows की अंतर्निहित क्षमताओं का उपयोग करके स्क्रिप्ट से ज़िप या अनज़िप कैसे कर सकते हैं?


294

विंडोज में आप कुछ फाइल्स को ज़िप कर सकते हैं

राइट क्लिक → सेंड टूकंप्रेस्ड (ज़िप्ड) फोल्डर

और .zipफ़ाइल पर डबल क्लिक करके अनज़िप करें और फ़ाइलों को निकालें।

क्या स्क्रिप्ट (.bat फ़ाइल) से उन क्षमताओं को लागू करने का कोई तरीका है किसी तीसरे पक्ष के सॉफ़्टवेयर को स्थापित करने की आवश्यकता के बिना ?



16
खैर, यह शायद एक बैच फ़ाइल या प्रोग्राम से कॉल करने के लिए है। (यही कारण है कि मैं यहां हूं - एक वेबसाइट के लिए एक छोटे उत्पाद को "बिल्ड" करने के लिए एक त्वरित .BAT फ़ाइल बनाने की कोशिश कर रहा हूं जिसके लिए उसे ज़िप फ़ाइल की आवश्यकता है।)
जॉन कोम्ब्स

46
पागल है कि इस सवाल को बंद कर दिया गया था।
सैम गोल्डबर्ग

1
क्या इस सवाल को सुपर यूजर तक ले जाना संभव है?
हैनक्स्यू

21
2018 में अभी भी बहुत उपयोगी और प्रासंगिक है: पी
माइकल फीवर

जवाबों:


82

2013 में वापस, यह संभव नहीं था। Microsoft ने इसके लिए कोई निष्पादन योग्य नहीं दिया।

ऐसा करने के लिए कुछ VBS के लिए इस लिंक को देखें। /superuser/201371/create-zip-folder-from-the-command-line-windows

विंडोज 8 पर, .NET फ्रेमवर्क 4.5 डिफ़ॉल्ट रूप से स्थापित है। System.IO.Compression.ZipArchive और PowerShell के साथ उपलब्ध है, कोई भी इसे प्राप्त करने के लिए स्क्रिप्ट लिख सकता है, https://stackoverflow.com/a/26843122/71212 देखें


1
यह सही नहीं है कि PS इसकी अनुमति देता है और विंडोज पर पूर्व-स्थापित है और कमांड लाइन के माध्यम से उपलब्ध है।
डैन एटकिंसन

4
@DanAtkinson अपडेट किया गया। यह 2013 में वापस जवाब दिया गया था, लिंक ने कुछ वीबीएस रास्ता प्रदान किया। PS तरीके की जरूरत है .net 4.5, जिसे विंडोज 8 या उससे ऊपर की जरूरत है।
डेरीबॉय

अद्यतन के लिए धन्यवाद! अपने मत में संशोधन किया है। :)
डान एटकिन्सन

6
@MichaelMrozek वेल "कमांड लाइन" किसी भी कमांड लाइन के लिए उदारतापूर्वक संदर्भित करता है, विशेष रूप से CMD / COMMAND नहीं, और PS निश्चित रूप से एक कमांड लाइन है, जैसा कि bash, sh, rsh पर * nix है। लेकिन सिर्फ एक और आगे जाने के लिए, क्योंकि आप कमांड लाइन से पावरशेल चला सकते हैं, यह सवाल का जवाब देता है, भले ही आप यह मानना ​​चाहते हों कि cmd / कमांड एक और केवल कमांड लाइन है।
रॉबर्ट मैककी

1
यह 2013 में वापस संभव था (बिना किसी अतिरिक्त सॉफ़्टवेयर को स्थापित किए)। सुपर यूजर प्रश्न देखें । तब से यह संभव हो गया है 2001 में Windows XP बाहर आया था। Windows XP में अंतर्निहित ज़िप कार्यक्षमता का लाभ उठाया जा सकता है क्योंकि यह COM इंटरफ़ेस के माध्यम से उजागर होता है ।
पीटर मोर्टेंसन

180

स्टीवन पेनी के पॉवरशेल समाधान पर विस्तार करने के लिए, आप इसे इस तरह से powerhell.exe कॉल करके एक बैच फ़ाइल में शामिल कर सकते हैं:

powershell.exe -nologo -noprofile -command "& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('foo.zip', 'bar'); }"

जैसा कि इवान शिलो ने कहा, यह PowerShell 2 के साथ काम नहीं करेगा, इसके लिए PowerShell 3 या अधिक से अधिक और .NET Framework 4 की आवश्यकता है।


1
दरअसल, इसे .NET 4.5 में उपलब्ध कराया गया था।
19

10
उन लोगों के लिए (मेरे जैसे) जो आश्चर्य करते हैं कि वास्तविक निर्देशिका में कैसे निकालना है (एक नई निर्देशिका बनाने के बजाय) बस लक्ष्य पैरामीटर सेट करें '.', जैसे:powershell.exe -nologo -noprofile -command "& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('foo.zip', '.'); }"
Munchkin

क्या हम संपीड़न बढ़ाने के लिए इन कमांड का उपयोग कर सकते हैं? जैसे फ़ाइल आकार को कम करने के लिए इसे अल्ट्रा कम्प्रेशन करना?
निगेल Fds

1
का उद्देश्य क्या है & {}? PS5 के साथ यह भी काम करता है:powershell.exe -nologo -noprofile -command "Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('foo.zip', '.');"
Roi Danton

@RoiDanton src.zip और dest.zip को परिभाषित करने के लिए स्ट्रिंगफॉर्मर का उपयोग कैसे करें?
PySaad

161

.NET 4.5 के रूप में , PowerShell ऐसा कर सकते हैं:

Add-Type -A System.IO.Compression.FileSystem
[IO.Compression.ZipFile]::CreateFromDirectory('foo', 'foo.zip')
[IO.Compression.ZipFile]::ExtractToDirectory('foo.zip', 'bar')

अंतिम दो पंक्तियों के लिए, barऔर fooउस नाम से बदला जा सकता है जिसे आप फ़ोल्डर में रखना चाहते हैं, या जो भी नाम है, वह संपूर्ण फ़ोल्डर का है। foo.zipदोनों मामलों में जिप फाइल के रूप में या तो से बचाने के लिए या से अनज़िप करने के लिए कार्य करता है।


17
यह .NET 4.5 के रूप में है।
qJake

क्या हम संपीड़न बढ़ाने के लिए इन कमांड का उपयोग कर सकते हैं? जैसे फ़ाइल आकार को कम करने के लिए इसे अल्ट्रा कम्प्रेशन करना?
निगेल Fds

मेरे पास .NET v4.0.30319, v2.0.50727, v1.1.4322, v1.0.3705 यहां से स्थापित वीएम पर स्थापित है: developer.microsoft.com/en-us/microsoft-edge/tools/vms , और यह काम करता है। इसलिए मैं अनुमान लगा रहा हूँ कि आपको जरूरत नहीं है। NET 4.5
Alpha_989

यह आधुनिक प्रणालियों पर सबसे व्यावहारिक समाधान है, यह आकार में 2GB से अधिक ज़िप लिखेगा, जबकि मानक पॉवर्सशेल "कंप्रेस-आर्काइव" विफल हो जाएगा।
शुकरी एडम्स

135

यदि आपके पास जावा स्थापित है, तो आप jarकमांड का उपयोग करके एक ज़िप संग्रह को संपीड़ित कर सकते हैं :

jar -cMf targetArchive.zip sourceDirectory

c = एक नई संग्रह फ़ाइल बनाता है।

M = निर्दिष्ट करता है कि एक प्रकट फ़ाइल को संग्रह में नहीं जोड़ा जाना चाहिए।

f = लक्ष्य फ़ाइल नाम इंगित करता है।


3
बहुत बढ़िया, धन्यवाद, बस मैं क्या देख रहा था ... FYI करें - मुझे DOS में माइनस चार को हटाना पड़ा ... जैसे jar cMf target.zip sourceDir
mlo55

3
बुरा नहीं है, लेकिन आपको JDK की आवश्यकता है, JRE की नहीं।
pdem

2
एक अच्छा, शायद इसके लिए सबसे मंच स्वतंत्र समाधान;)
एड्रियन

YMMD। गजब का विचार। मुझे बहुत समय बचाया।
गोरफेस्ट

3
क्या यह "... केवल विंडोज की अंतर्निहित क्षमताओं का उपयोग करके कवर किया गया है?" (मेरा जोर)
पीटर मोर्टेंसन

84

पॉवरशेल 5.0

Microsoft.PowerShell.Archiveआप से उपयोग कर सकते हैं:

उदाहरण के लिए:

  • result.zipसंपूर्ण Testफ़ोल्डर से बनाएँ :

    Compress-Archive -Path C:\Test -DestinationPath C:\result
    
  • result.zipनिर्दिष्ट Testफ़ोल्डर में सामग्री निकालें :

    Expand-Archive -Path result.zip -DestinationPath C:\Test
    

13
यह बहुत अच्छा काम करता है, धन्यवाद। यहां समाप्त होने वाले किसी भी व्यक्ति के लिए, आपको powershell Compress-Archive -Path C:\SomeFile.ext -DestinationPath C:\SomeFile.zipस्क्रिप्ट बनाने की आवश्यकता के बिना कमांड लाइन से सही का उपयोग कर सकते हैं (यह मानते हुए कि आपके पास Powershell v5 स्थापित है, जिसे आप कम से कम विंडोज 7 पर वापस जा सकते हैं)।
Beems

यदि आप इसे फिर से चलाना चाहते हैं, तो बढ़िया, ऐड-फ़ोर्स विकल्प काम करता है।
रोबिन

1
@ धन्यवाद, धन्यवाद! लेकिन मुझे लगता है कि आप दूसरे रास्ते के रास्ते / गंतव्य को पागल करते हैं?
यिंगिंग

यह काम करता है, लेकिन संग्रह अलग-अलग तरीके से संपीड़ित होता है तब क्या होता है यदि आप विंडोज़ एक्सप्लोरर "सेंड टू -> कंप्रेस्ड (ज़िप्ड) फोल्डर" का उपयोग करते हैं "
पावरशेल

संपीड़ित-पुरालेख की इनपुट फ़ाइल पर अधिकतम 2GB की सीमा है
सर्गेई रोडियोनोव

37

यह बिल्कुल एक ज़िप नहीं है, लेकिन विंडोज टूल का उपयोग करके किसी फ़ाइल को संपीड़ित करने का एकमात्र तरीका है:

makecab <source> <dest>.cab

विघटित करने के लिए:

expand <source>.cab <dest>

उन्नत उदाहरण (ss64.com से):

Create a self extracting archive containing movie.mov:
C:\> makecab movie.mov "temp.cab"
C:\> copy /b "%windir%\system32\extrac32.exe"+"temp.cab" "movie.exe"
C:\> del /q /f "temp.cab"

अधिक जानकारी: makecab , विस्तार , makecab उन्नत उपयोग



34

7-ज़िप का उपयोग करना:

ज़िप : आपके पास एक फ़ोल्डर है foo, और इसे ज़िप करना चाहते हैंmyzip.zip

"C:\Program Files\7-Zip\7z.exe" a  -r myzip.zip -w foo -mem=AES256

अनज़िप : आप इसे ( myzip.zip) वर्तमान निर्देशिका में अनज़िप करना चाहते हैं ( ./)

"C:\Program Files\7-Zip\7z.exe" x  myzip.zip  -o./ -y -r

31
कृपया इस प्रश्न पर ध्यान दें:without the need to install any 3rd party
Roee Gavirel

16
@RoeeGavirel 7zip किसी भी विंडोज इंस्टॉलेशन पर आपके द्वारा इंस्टॉल की गई पहली चीजों में से एक होनी चाहिए: P
developerbmw

3
@developerbmw - यह क्यों है? B. मैं उत्पादन में ~ 100 मशीनों को संभाल रहा हूं जिनके पास 7zip नहीं है। यह स्थापित करने के लिए कि मुझे DevOps को उन सभी मशीनों पर और उन सभी नई मशीनों पर स्थापित करना होगा, जिन्हें क्लस्टर में जोड़ा जाएगा। मैं इससे बचना चाहूंगा।
रोई गेवियरल

1
@ रोलैंड: क्या आप खुश हो सकते हैं; यह गलत कहाँ है वह सब मदद करेगा।
मोनिर

1
@ रोलैंड: बस चेक किया गया, वाक्यविन्यास अच्छा काम कर रहा है। शायद, आप फ़ोल्डर "फू" के साथ कोशिश कर रहे हैं जो आपकी मशीन में मौजूद नहीं है। हालांकि सिर्फ अनुमान है।
मोनिर

9

मैं इस सटीक प्रश्न का उत्तर देना चाह रहा हूं और मेरे शोध से, ड्यूरेबॉय की प्रतिक्रिया सटीक प्रतीत होती है।

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

मुझे कंप्रेशर भी मिला, जो मैंने अपने कंप्यूटर पर किया था। यह मूल रूप से अधिकांश विंडोज़ मशीनों पर नहीं है और 2003 संसाधन किट का हिस्सा है। यह एक प्रकार की ज़िपित फ़ाइल बनाता है, लेकिन यह वास्तव में विंडोज़ सेटअप डिस्क की फ़ाइलों के समान है (फ़ाइल एक्सटेंशन या नाम के अंतिम वर्ण के रूप में अंडरस्कोर है)। और extract.exe कमांड उन फाइलों को निकालती है।

हालाँकि, मंत्र यह है, अगर इसे मूल रूप से GUI के माध्यम से किया जा सकता है, तो कमांड लाइन के भीतर बैच, .vbs, या कुछ अन्य प्रकार की स्क्रिप्ट के माध्यम से करने का एक तरीका है। चूंकि ज़िप फ़ाइल बनाने के लिए विंडोज़ में 'सेंड टू' विकल्प होता है, मुझे पता था कि कमांड लाइन के माध्यम से इसे करने का एक तरीका होना चाहिए और मुझे कुछ विकल्प मिल गए।

यहां एक शानदार लिंक है जो दिखाता है कि विंडोज़ देशी कमांड्स का उपयोग करके किसी फ़ाइल को कैसे ज़िप किया जाए।

/superuser/110991/can-you-zip-a-file-from-the-command-prompt-using-only-windows-built-in-capabili

मैंने कई नेस्टेड फ़ाइलों और फ़ोल्डरों वाली निर्देशिका के साथ इसका परीक्षण किया और यह पूरी तरह से काम किया। बस कमांड लाइन के प्रारूप का पालन करें।

कमांड लाइन के माध्यम से फ़ाइलों को अनज़िप करने का एक तरीका भी है जो मुझे भी मिला। एक तरीका, बस एक एक्सप्लोरर विंडो खोलना दिखाता है कि ज़िपित फ़ाइल की सामग्री क्या है। इनमें से कुछ जावा का भी उपयोग करते हैं जो आवश्यक रूप से विंडोज़ के लिए मूल नहीं है, लेकिन इतना आम है कि यह लगभग ऐसा लगता है।

/superuser/149489/does-windows-7-have-unzip-at-the-command-line-installed-by-default

कमांड लाइन का उपयोग करके किसी फ़ाइल को अनज़िप कैसे करें?



8

आप BAT फ़ाइल में लिपटे VBScript स्क्रिप्ट का उपयोग कर सकते हैं। यह कोड एक रिश्तेदार PATH पर काम करता है।

किसी भी तृतीय-पक्ष उपकरण या निर्भरता की कोई आवश्यकता नहीं है। बस सेट SOURCEDIRऔरOUTPUTZIP

फ़ाइल नाम: ZipUp.bat

echo Set fso = CreateObject("Scripting.FileSystemObject") > _zipup.vbs
echo InputFolder = fso.GetAbsolutePathName(WScript.Arguments.Item(0)) >> _zipup.vbs
echo ZipFile = fso.GetAbsolutePathName(WScript.Arguments.Item(1)) >> _zipup.vbs

' Create empty ZIP file.
echo CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" ^& Chr(5) ^& Chr(6) ^& String(18, vbNullChar) >> _zipup.vbs

echo Set objShell = CreateObject("Shell.Application") >> _zipup.vbs
echo Set source = objShell.NameSpace(InputFolder).Items >> _zipup.vbs
echo objShell.NameSpace(ZipFile).CopyHere(source) >> _zipup.vbs

echo ' Keep script waiting until compression is done
echo Do Until objShell.NameSpace( ZipFile ).Items.Count = objShell.NameSpace( InputFolder ).Items.Count >> _zipup.vbs
echo     WScript.Sleep 200 >> _zipup.vbs
echo Loop >> _zipup.vbs

CScript  _zipup.vbs  %SOURCEDIR%  %OUTPUTZIP%

del _zipup.vbs

उदाहरण उपयोग

SET SOURCEDIR=C:\Some\Path
SET OUTPUTZIP=C:\Archive.zip
CALL ZipUp

वैकल्पिक रूप से, आप इस फाइल को लाइन के CScript _zipup.vbs %SOURCEDIR% %OUTPUTZIP%साथ बदलकर पैरामीरिज कर सकते हैं CScript _zipup.vbs %1 %2, जिस स्थिति में इसे और भी आसानी से कॉल करके आसानी से कॉल किया जा सकता है CALL ZipUp C:\Source\Dir C:\Archive.zip


प्रारंभिक ज़िप फ़ाइल बनाने वाली लाइन को बच जाना चाहिए अन्यथा यह स्क्रिप्ट में समाप्त नहीं होती है।
कप

हां, यह जाने का तरीका है (जैसे सुपर यूजर प्रश्न में )।
पीटर मोर्टेंसन

मैंने उत्तर के रूप में एक ठीक से बच गए संस्करण को जोड़ा।
5

5

मुझे इन सभी समाधानों से समस्या है।

वे बिल्कुल समान नहीं हैं , और वे सभी एक RMB --> send to --> compressed (zipped) folderही स्रोत फ़ोल्डर से किए गए की तुलना में उन फ़ाइलों का निर्माण करते हैं जिनके आकार में मामूली अंतर है । मेरे पास निकटतम आकार-अंतर 300 केबी अंतर (स्क्रिप्ट> मैनुअल) है, जो इसके साथ बनाया गया है:

powershell Compress-Archive -Path C:\sourceFolder -CompressionLevel Fastest -DestinationPath C:\destinationArchive.zip

(नोटिस -CompressionLevelतीन संभावित मान हैं : सबसे तेज़, NoCompression और Optimal, (डिफ़ॉल्ट: Optimal))

मैं एक .bat फ़ाइल बनाना चाहता था जिसे स्वचालित रूप से एक वर्डप्रेस प्लगइन फ़ोल्डर को संक्षिप्त करना चाहिए, जिस पर मैं .zip संग्रह में काम कर रहा हूं, इसलिए मैं इसे वर्डप्रेस साइट में अपलोड कर सकता हूं और प्लगइन का परीक्षण कर सकता हूं।

लेकिन किसी कारण के लिए यह इन स्वचालित कम्पनों में से किसी के साथ काम नहीं करता है, लेकिन यह मैनुअल आरएमबी संपीड़न के साथ काम करता है, चुड़ैल मुझे वास्तव में अजीब लगता है।

और स्क्रिप्ट-जनरेट .zip फाइलें वास्तव में वर्डप्रेस प्लगइन्स को उस बिंदु तक तोड़ती हैं जहां उन्हें सक्रिय नहीं किया जा सकता है, और वे वर्डप्रेस के अंदर भी हटाए नहीं जा सकते हैं। मुझे सर्वर के "बैक साइड" में एसएसएच करना होगा और अपलोड किए गए प्लगइन फ़ाइलों को स्वयं हटा देना चाहिए। जबकि मैन्युअल रूप से आरएमबी-जनरेट की गई फाइलें सामान्य रूप से काम करती हैं।


क्या है "WBR" और "RMB" ?
पीटर मोर्टेंसन

आरएमबी = राइट माउस बटन। <wbr> = एक HTML टैग जो ब्राउज़र में "वर्ड ब्रिक अवसर" को दर्शाता है (हटा दिया गया, क्योंकि यह काम नहीं करता था)।
सेबस्टियन नॉर

4

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

jar xf test.zip

यदि जावा आपके रास्ते पर नहीं है, तो इसे सीधे देखें:

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

3

खुला स्रोत आपका दोस्त है :-)

यहाँ अनज़िप है : http://gnuwin32.sourceforge.net/packages/unzip.htm

एक जिप कमांड भी है: http://gnuwin32.sourceforge.net/packages/zip.htm

बाइनरी डाउनलोड पर्याप्त है।


विंडोज 8 पर, यह एक त्रुटि फेंकता है: bzip2.dll गायब है।
डग

1
@Doug यह कहता है कि bzip2 पृष्ठ पर एक आवश्यकता है और डाउनलोड करने के लिए एक लिंक है
सैम

11
मूल प्रश्न यह था कि मानक अंतर्निहित विंडोज कमांड का उपयोग कैसे किया जाए। इसके अलावा, विभिन्न तृतीय-पक्ष समाधान स्थापित करने के लिए अपने उपयोगकर्ताओं की आवश्यकता अवांछनीय है क्योंकि आपका स्वयं का उपकरण या समाधान अब उन उपयोगकर्ताओं तक सीमित है जिनके पास अपने कंप्यूटर पर प्रशासनिक अनुमति है, या जो अपने सिस्टम पर थोड़ा निर्भरता के बढ़ते संग्रह की परवाह नहीं करते हैं । ओपन सोर्स आपका दोस्त हो सकता है, लेकिन ओपन सोर्स पैकेज आपको अन्य ओपन सोर्स पैकेज इंस्टॉल करने की आवश्यकता होती है, जो आपको अन्य ओपन सोर्स पैकेज स्थापित करने की आवश्यकता होती है और इसी तरह निश्चित रूप से आपके दोस्त नहीं हैं ।
स्टीव होलास्च

SourceForge मेरे काम की फ़ायरवॉल नीति द्वारा अवरुद्ध है :-(
स्नूकर

1
यह अभी भी तीसरे पक्ष के sotware का उपयोग करता है
sotware Деян Добромиров

3

यह @ PodTech.io द्वारा उपलब्ध कराए गए उत्तर का एक अद्यतन संस्करण है

इस संस्करण में सभी vbs कोड सही ढंग से बैच फ़ाइल में बच गए हैं। इसे एक उप-दिनचर्या में भी बनाया जाता है, जिसे आपके बैच स्क्रिप्ट में कहीं से भी एक पंक्ति के साथ कहा जा सकता है:

:: === Main code:

call :ZipUp "C:\Some\Path" "C:\Archive.zip"


:: === SubRoutines:

:ZipUp
::Arguments: Source_folder, destination_zip
(
    echo:Set fso = CreateObject^("Scripting.FileSystemObject"^)
    echo:InputFolder = fso.GetAbsolutePathName^(WScript.Arguments.Item^(0^)^)
    echo:ZipFile = fso.GetAbsolutePathName^(WScript.Arguments.Item^(1^)^)
    echo:
    echo:' Create empty ZIP file.
    echo:CreateObject^("Scripting.FileSystemObject"^).CreateTextFile^(ZipFile, True^).Write "PK" ^& Chr^(5^) ^& Chr^(6^) ^& String^(18, vbNullChar^)
    echo:
    echo:Set objShell = CreateObject^("Shell.Application"^)
    echo:Set source = objShell.NameSpace^(InputFolder^).Items
    echo:objShell.NameSpace^(ZipFile^).CopyHere^(source^)
    echo:
    echo:' Keep script waiting until compression is done
    echo:Do Until objShell.NameSpace^( ZipFile ^).Items.Count = objShell.NameSpace^( InputFolder ^).Items.Count
    echo:    WScript.Sleep 200
    echo:Loop
)>_zipup.vbs
CScript //Nologo _zipup.vbs "%~1" "%~2"
del _zipup.vbs
goto :eof

2

आप कहते हैं कि आप तृतीय-पक्ष सॉफ़्टवेयर के बिना ऐसा करने का प्रयास कर रहे हैं। मुझे यकीन नहीं है कि आप .NET "तृतीय-पक्ष" सॉफ़्टवेयर पर विचार करेंगे।

लेकिन आप .NET में अपनी खुद की कमांड लाइन उपयोगिता बना सकते हैं। इसे कोड की कुछ पंक्तियों से अधिक की आवश्यकता नहीं होनी चाहिए।

जिपफाइल क्लास


0

@ जैसन डफेट के उत्तर और उसकी टिप्पणियों को जोड़ते हुए , यहां एक स्क्रिप्ट है जो उपयोगकर्ता से इनपुट और आउटपुट (फ़ाइल नाम और निर्देशिका नाम, क्रमशः) प्राप्त करता है:

@echo off
set input=%1
set output=%2
powershell.exe "Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('%input%', '%output%');"

उपयोग:

unzip.bat path\to\file.zip path\to\output\directory

-4

किसी फ़ाइल को ज़िप करने के लिए:

C:\> zip -9 -m -o file.dat.zip file.dat
  • -9 अधिकतम संपीड़न
  • सक्सेसफुल कम्प्रेशन के बाद मूल फाइल को डिलीट करें
  • -जिप फ़ाइल की संशोधन तिथि को मूल फ़ाइल के समान सेट करें
  • बहुत बुरा है, इसे सिर्फ जोड़ने के बजाय वांछित ज़िप फ़ाइल का नाम देना है। नाम को ओ.टी. एक्सटेंशन को संपीड़ित करने के लिए फ़ाइल ओ.टी.

4
दो बातें: (1) "ज़िप" खिड़कियों के साथ प्रदान नहीं की जाती है, इसलिए यह संभवतः आपके पास एक 3 पार्टी है। और जैसा कि मेरे प्रश्न का उल्लेख है, मैं तीसरे पक्ष को स्थापित नहीं कर सकता। (2) आपको वांछित नाम प्रदान करने की आवश्यकता है क्योंकि ज़िप बनाना और फाइलों का संग्रह करना (जैसे किसी नीच में फ़ोल्डर) और आपके पास एक से अधिक फ़ाइल हो सकती हैं।
रोई गेवियरल

@RoeeGavirel सर्वर में मुझे जिप कमांड लाइन उपयोगिता मिली, कोई winzip GUI टूल स्थापित नहीं है, इसलिए मैंने अनुमान लगाया कि नंगे सीएलआई टूल विंडोज के साथ आया था। दूसरी ओर, यूनिक्स / लिनक्स कंप्रेस यूटिलिटीज जैसे कि कंप्रेस, बीज़िप 2 और गज़िप, कंप्रेस्ड फ़ाइल को मूल फ़ाइल के साथ ही एक्सटेंशन (.Z, .bz2 या .gz) के समान नाम से बनाते हैं, यदि आप वांछित का नाम पास नहीं करते हैं। संकुचित फ़ाइल।
ट्यूलेंस कोर्डोवा

-4

आप विस्तारित कमांड, जैसे, का उपयोग करके एक ज़िपित या देशी संपीड़ित विंडोज फ़ाइल को अनसुना कर सकते हैं

expand MyFile.zip myFile

9
मैंने कोशिश की कि, लेकिन यह MyFile.zip को myFile फ़ोल्डर में कॉपी करता है,
fhnaseer

इससे मुझे C: \> का विस्तार हुआ /?
स्नोयॉय

11
विस्तृत करें केवल .cab फ़ाइल के साथ काम करता है और यह ज़िप फ़ाइलों के लिए उपयुक्त नहीं है।
рüффп

2
Ditto अन्य टिप्पणियाँ यहाँ। Expand file.zip fileएक्सटेंशन के बिना बस ज़िप को दूसरी फाइल में कॉपी कर लें। यह फोल्डर में जिप को अनकैप्ड नहीं करता है।
डेव मार्ले
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.