如何使用命令行解压缩文件?

可以通过命令行使用哪些命令来解压缩文件?
最好是内置在 Windows 或开源/免费工具中的东西。

748381 次浏览

Info-zip获取一个可执行文件。

Info-ZIP 支持从微型计算机到克雷超级计算机的所有硬件,运行在几乎所有版本的 Unix、 VMS、 OS/2、 Windows 9x/NT/等(又称 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 NLM 的支持。共享库(DLL)可用于 Unix、 OS/2、 Win32和 Win16,图形界面可用于 Win32、 Win16、 WinCE 和 Mac OS。

7-Zip ,开源,免费,支持多种格式。

7z.exe x myarchive.zip

最初,ZIP 文件是用来自 PKWare 的 MS-DOS 命令行软件创建的,这两个程序分别是 PKZIP.EXE 和 PKUNZIP.EXE。我想你仍然可以在 PKWare 网站下载 PKUNZIP:

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

实际的命令行可以是这样的:

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

如果你的电脑上已经有 JDK,并且 bin 目录在你的路径中(在大多数情况下) ,你可以使用命令行:

jar xf test.zip

如果不是在你的道路上:

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

可用的 jar 工具的完整选项集 给你

例子:

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

首先,使用 vbscript 编写一个解压实用程序来触发 Windows 中的本地解压功能。然后从批处理文件中导出脚本,然后调用它。那就等于孤军奋战。我以前做过很多任务。这样就不需要第三方应用程序,只需要一个完成所有工作的批处理文件。

我把 在我的博客上有一个关于如何使用批处理文件解压缩文件的例子:

' 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

谢谢 Rich 我会记下来的。这是我自己的解决方案。它不需要第三方解压工具。

在批处理文件的开头包含下面的脚本来创建函数,然后调用函数,命令是..。 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.

正如其他人提到的,7-zip 是伟大的。

注意: 我要压缩,然后解压缩一个文件。解压缩在底部。

我的贡献是:

去拿

7-Zip 命令行版本

当前网址

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 是递归的,通常需要的是 zip 功能。

A 表示“ archive”,这是输出 zip 文件的名称。

- p 表示密码(可选)

W 是源目录。这将正确地将文件嵌套在 zip 文件中,而不需要额外的文件夹信息。

MEM 是加密强度。

完整的文档(代表“ a”又名“ Add”)在这里

Https://sevenzip.osdn.jp/chm/cmdline/commands/add.htm

还有其他人,但是以上这些会让你逃跑。

注意: 在通过文件资源管理器查看压缩文件时,添加密码会使压缩文件变得不友好。客户端可能需要自己的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

作为“ e”参数的替代,有一个 x 参数。

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

相关文件如下:

完整的文档(为“ e”又名“提取”)在这里

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

将下面的代码复制到批处理文件并执行。下面要求从您的计算机安装/访问 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