有哪些命令可以通过命令行解压文件?
最好使用内置于Windows或开源/免费工具。
有哪些命令可以通过命令行解压文件?
最好使用内置于Windows或开源/免费工具。
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]
powershell.exe -NoP -NonI -Command "Expand-Archive '.\file.zip' '.\unziped\'"
。 - AK_.NET 4.5
。 - WestFarmerTar
无法创建 zip
文件,只能创建 tar
文件。不过,Windows Explorer 可以打开这样的 tar
文件,就像它可以打开 cab
文件一样。 - undefined7-Zip是一个开源、免费且支持多种格式的软件。
7z.exe x myarchive.zip
首先,使用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
正如其他人所提到的,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”,也称为“添加”)在此处:
https://sevenzip.osdn.jp/chm/cmdline/commands/add.htm
还有其他选项。但以上内容足以让您开始运行。
注意:添加密码将使得通过 Windows资源管理器查看文件时,zip 文件变得不友好。客户端可能需要自己拥有 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 工具的命令行版本,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
谢谢Rich,我会注意的。以下是我的解决方案脚本,不需要第三方解压工具。
在批处理文件的开头包含下面的脚本以创建函数,然后调用函数的命令是...
cscript /B j_unzip.vbs zip_file_name_goes_here.zip
这是要添加到顶部的脚本...
REM 为了兼容Vista和7,将工作文件夹更改回当前目录 %~d0 CD %~dp0 REM 文件夹已更改>> 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 '指定要提取内容的文件夹。 >> j_unzip.vbs ECHO outFolder = sCurPath ^& "\" >> j_unzip.vbs ECHO. >> j_unzip.vbs ECHO. WScript.Echo ( "正在解压文件 " ^& 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 ( "解压完成。") >> j_unzip.vbs ECHO.
REM 这个脚本用来解压文件...
> j_unzip.vbs ECHO ' >> j_unzip.vbs ECHO ' 解压缩脚本 >> j_unzip.vbs ECHO ' >> j_unzip.vbs ECHO ' 它很混乱,我知道!!! >> 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 ' 压缩文件的位置。 >> j_unzip.vbs ECHO REM Set WshShell = CreateObject("Wscript.Shell") >> j_unzip.vbs ECHO REM CurDir = WshShell.ExpandEnvironmentStrings("%%cd%%")
C:\>pkunzip c:\myzipfile.zip c:\extracttothisfolder\
从info-zip下载可执行文件。
Info-ZIP支持从微型计算机到Cray超级计算机的硬件,运行在几乎所有版本的Unix、VMS、OS/2、Windows 9x/NT等操作系统上。同时也支持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的一些(旧)支持。Unix、OS/2、Win32和Win16都可以使用共享库(DLLs),并且Win32、Win16、WinCE和Mac OS都有图形界面。
将以下代码复制到批处理文件中并执行。 以下需要安装/从您的计算机访问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