كيفية فك ضغط ملف باستخدام سطر الأوامر؟[مغلق]

StackOverflow https://stackoverflow.com/questions/1021557

  •  06-07-2019
  •  | 
  •  

سؤال

هل يمكنني فك ضغط الملفات من خلال سطر الأوامر؟يفضل استخدام أدوات مفتوحة المصدر/مجانية.

نصائح أخرى

إذا كان لديك بالفعل جافا على جهاز الكمبيوتر الخاص بك، والدليل بن في المسار الخاص بك (في معظم الحالات)، يمكنك استخدام سطر الأوامر:

jar xf test.zip

وأو إن لم يكن في المسار الخاص بك:

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

ومجموعة كاملة من الخيارات لأداة جرة متاح هنا .

والأمثلة على ذلك:

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

أولا، كتابة أداة فك الضغط باستخدام VBScript لتحريك وظائف بفك الأم في ويندوز. ثم الأنابيب من البرنامج النصي من داخل الملف الدفعي ثم تسميتها. ثم انها جيدة كما تقف وحدها. لقد فعلت ذلك في الماضي للعديد من المهام. بهذه الطريقة أنها لا تتطلب الحاجة لتطبيقات الطرف الثالث، مجرد ملف دفعي واحد أن يفعل كل شيء.

مثال على بلدي بلوق على كيفية بفك ملف باستخدام ملف دفعي :

' 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

7 زيب ، انها مفتوحة المصدر وحرة وتدعم مجموعة واسعة من صيغ .

7z.exe x myarchive.zip

كما ألمح آخرون، فإن 7-zip رائع.

ملحوظة:سأقوم بضغط ملف ثم فك ضغطه.فك الضغط موجود في الأسفل.

مساهمتي:

احصل على ال

7-إصدار سطر الأوامر المضغوط

عنوان URL الحالي

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

بناء الجملة؟

يمكنك وضع ما يلي في ملف .bat

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

لقد أظهرت بعض الخيارات.

-r هو عودي.عادة ما تريده مع وظيفة الرمز البريدي.

a مخصص لـ "الأرشيف".هذا هو اسم الملف المضغوط الناتج.

-p مخصص لكلمة المرور (اختياري)

-w هو الدليل المصدر.سيؤدي هذا إلى دمج ملفاتك بشكل صحيح في الملف المضغوط، بدون معلومات المجلد الإضافية.

-mem هي قوة التشفير.

وهناك آخرون.لكن ما سبق سوف يجعلك تعمل.

ملحوظة:ستؤدي إضافة كلمة مرور إلى جعل الملف المضغوط غير ملائم عندما يتعلق الأمر بعرض الملف من خلال مستكشف Windows.قد يحتاج العميل إلى نسخته الخاصة من برنامج 7-zip (أو برنامج Winzip أو أي برنامج آخر) لعرض محتويات الملف.

تحرير::::::::::::(مجرد أشياء إضافية).

يوجد إصدار "سطر الأوامر" والذي ربما يكون أكثر ملاءمة لهذا:http://www.7-zip.org/download.html

(الحالي (في وقت كتابة هذا التقرير) الرابط المباشر)http://sourceforge.net/projects/sevenzip/files/7-Zip/9.20/7za920.zip/download

لذلك أمر مضغوط سيكون (مع إصدار سطر الأوامر لأداة 7 zip).

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

الآن جزء فك الضغط:(لفك ضغط الملف الذي قمت بإنشائه للتو)

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

التوثيق هنا:

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

وبفضل الغنية، وسوف تأخذ علما بذلك. حتى هنا هو سيناريو حل بلدي. لا يتطلب أي أدوات بفك طرف ثالث.

تضمين البرنامج النصي أدناه في بداية الملف الدفعي لإنشاء وظيفة، ومن ثم استدعاء وظيفة، والأمر ... 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.

وهناك مقال على الحصول على المدمج في ملف Windows مضغوط التعامل مع مع VBScript هنا:

الشبكي: //www.aspfree. كوم / ج / أ / ويندوز البرمجة / مضغوط المجلدات في وWSH /

و(كود الماضي دعاية مغالى فيها صفقات مع الاستخراج)

احصل على ملف قابل للتنفيذ من معلومات-الرمز البريدي.

يدعم Info-ZIP الأجهزة بدءًا من أجهزة الكمبيوتر الصغيرة وصولاً إلى أجهزة الكمبيوتر العملاقة Cray، والتي تعمل على جميع إصدارات Unix وVMS وOS/2 وWindows 9x/NT/etc تقريبًا.(الملقب ب.Win32)، Windows 3.x، Windows CE، MS-DOS، AmigaDOS، Atari TOS، Acorn RISC OS، BeOS، Mac OS، SMS/QDOS، MVS وOS/390 OE، VM/CMS، FlexOS، Tandem NSK وHuman68K (اليابانية).يوجد أيضًا بعض الدعم (القديم) لـ LynxOS وTOPS-20 وAOS/VS وNovell NLMs.تتوفر المكتبات المشتركة (DLLs) لأنظمة Unix وOS/2 وWin32 وWin16، كما تتوفر الواجهات الرسومية لأنظمة Win32 وWin16 وWinCE وMac OS.

وكتبت وإنشاء ملفات ZIP مع MS-DOS برنامج سطر الأوامر من PKWare، كانت البرنامجين PKZIP.EXE وPKUNZIP.EXE. أعتقد لا يزال بإمكانك تحميل PKUNZIP في موقع PKWare هنا:

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

وسطر الأوامر الفعلية يمكن ان ننظر بشيء من هذا القبيل:

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

ونسخ التعليمات البرمجية أدناه إلى ملف دفعة وتنفيذه. يتطلب أدناه برنامج لضغط الملفات ليتم تثبيتها / يمكن الوصول إليها من جهازك. لا تغيير متغيرات حسب حاجتك.

@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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top