7-ज़िप कमांड लाइन एक संग्रह से एक फ़ोल्डर निकालने के लिए


16

मैं उपयोग कर रहा हूँ 7-Zip कमांडलाइन एक को निकालने के लिए ज़िप बुलाया संग्रह abc.zipजो एक फ़ोल्डर उस में तीन पाठ फ़ाइलों के साथ 'ज़िपर' कहा जाता है (के साथ एक संग्रह है a.txt, b.txtऔर c.txt)।

मेरी समस्या यह है कि जब मैं इसे निम्नलिखित कमांड से हटाता हूं:

7z e C:\abc\abc.zip -y oC:\abc

7-ज़िप सब कुछ निकालता है, लेकिन यह फ़ोल्डर 'ज़िप' नहीं निकालता है a.txt, यह सिर्फ अर्क निकालता है , b.txtऔर c.txtउन्हें आउटपुट डेस्टिनेशन (जो है, C:\abc) में डालता है ।

मैं केवल वास्तविक फ़ोल्डर को निकालने के लिए 7-ज़िप कैसे बना सकता हूं?

जवाबों:



9

संभवतः इसके सामने एक हाइफ़न होना चाहिए o:

-oC:\abc

-rपुनरावृत्ति के विकल्प पर भी विचार करें ।


0

मुझे इसी तरह की समस्या का समाधान करना था। यहाँ पर मेरे द्वारा उपयोग किया गया कोड है। यह स्क्रिप्ट एक फ़ोल्डर प्राप्त करती है और सभी ज़िप को खोल देती है (और बाद में उन्हें हटा देती है)। चाल एक विशेष फ़ोल्डर में डेटा को अनज़िप करने के लिए है। थोड़ा सा नुकीला लेकिन यह काम करता है ...

@echo off

set SEVEN_ZIP_HOME=C:\Program Files\7-Zip

set TEMPDIR=temp

set WORKING_DIR="%1"

if "%WORKING_DIR%"==""  set WORKING_DIR=%~dp0

cd /d %WORKING_DIR%

if not exist %TEMPDIR% md %TEMPDIR%

for %%i in ("%WORKING_DIR%\*.zip") do call :unzipAndDelete "%%i"

rd %TEMPDIR%

goto :end

:unzipAndDelete 

set ZIP_FILE=%~1

call :extractName %ZIP_FILE%

call "%SEVEN_ZIP_HOME%\7z.exe" e "%ZIP_FILE%" -o./%TEMPDIR%

copy .\%TEMPDIR%\*.* %FILENAME%.log

del .\%TEMPDIR%\*.* /q

del "%ZIP_FILE%"

goto :end

:extractName 

set FILENAME=%~n1
goto :end


:end
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.