Batch file 如何使用7-zip批量解压缩文件夹中的所有文件?
标题似乎说明了一切。我不知道该怎么做,另一个帖子是Batch file 如何使用7-zip批量解压缩文件夹中的所有文件?,batch-file,Batch File,标题似乎说明了一切。我不知道该怎么做,另一个帖子是 没有什么能很连贯地向我解释。有人能帮我解压特定文件夹中的所有.zip文件吗?这将解压当前文件夹中的所有zip文件(到同一文件夹),假设您已将7zip安装到C:\Program files\7-zip位置 如果已将7zip文件夹添加到路径中,则只需输入7z而不是完整路径 “C:\Program Files\7-Zip\7z.exe”e*.Zip 只是为了加起来。 我的默认安装文件夹是C:\ProgramFiles(x86)\7-Zip,因此我将
没有什么能很连贯地向我解释。有人能帮我解压特定文件夹中的所有.zip文件吗?这将解压当前文件夹中的所有zip文件(到同一文件夹),假设您已将7zip安装到
C:\Program files\7-zip
位置
如果已将7zip文件夹添加到路径中,则只需输入7z而不是完整路径
“C:\Program Files\7-Zip\7z.exe”e*.Zip
只是为了加起来。
我的默认安装文件夹是C:\ProgramFiles(x86)\7-Zip
,因此我将从那里开始。
这里是下载链接
我想将目录中的每个zip文件解压到多个文件夹中。但是,前面答案中的e
会导出目录中的所有内容
以下是“正常”解压的步骤,为每个解压的zip文件创建一个文件夹:
“C:\ProgramFiles(x86)\7-Zip\7z.exe”x*.Zip
要了解7z.exe的全部操作细节,请使用--help
:
“C:\ProgramFiles(x86)\7-Zip\7z.exe”--帮助
以下是它的输出:
用法:7z[…][…]
[]
a:将文件添加到存档
b:基准
d:从存档中删除文件
e:从存档中提取文件(不使用目录名)
l:列出档案的内容
测试档案的完整性
u:将文件更新到存档
x:提取具有完整路径的文件
-ai[r[-|0]{@listfile|!wildcard}:包含存档
-ax[r[-|0]{@listfile|!wildcard}:排除存档
-bd:禁用百分比指示器
-i[r[-|0]{@listfile|!wildcard}:包括文件名
-m{Parameters}:集合压缩方法
-o{Directory}:设置输出目录
-p{Password}:设置密码
-r[-| 0]:递归子目录
-scs{UTF-8 | WIN | DOS}:为列表文件设置字符集
-sfx[{name}]:创建sfx存档
-si[{name}]:从标准输入读取数据
-slt:显示l(列表)命令的技术信息
-so:将数据写入标准输出
-ssc[-]:设置敏感案例模式
-ssw:压缩共享文件
-t{Type}:设置存档的类型
-u[-][p][q][r][x][y][z][!newArchiveName]:更新选项
-v{Size}[b | k | m | g]:创建卷
-w[{path}]:分配工作目录。空路径表示临时目录
-x[r[-|0]]{@listfile |!wildcard}:排除文件名
-y:假设所有查询都是
对于非批量用户
- 打开7-zip
- 使用7-zip导航到.7z或.zip或.rar文件所在的文件夹
- 选择所有.7z或.zip或.rar文件
- 单击“提取”按钮上的7-zip
- 在下一个弹出窗口中单击“确定”以提取到同一位置
"C:\Program Files\7-Zip\7z.exe" x *.zip
例如,您有一个zip文件列表
file001.zip
file002.zip
fileXXX.zip
将解压缩到zip文件所在的同一文件夹中的/file001、/file002、/fileXXX。我不确定OP的意图,但我认为最好为每个.zip文件都有一个子文件夹,这样同名文件就不会被覆盖。(就像用鼠标右键拖放多个.zip文件并从本地菜单中选择7-zip>解压缩文件…) 为此,我在命令行中使用:
for /f "usebackq delims=" %f in ( `dir /b /s *.zip` ) do 7z x "%f" -o"%~pf%~nf"
如果PATH
环境变量中没有7-Zip的程序文件夹,则需要编写其完整路径。在具有x64 7-Zip的x86 Windows或x64 Windows上:
for /f "usebackq delims=" %f in ( `dir /b /s *.zip` ) do "C:\Program Files\7-Zip\7z.exe" x "%f" -o"%~pf%~nf"
在使用x86 7-Zip的x64 Windows上:
for /f "usebackq delims=" %f in ( `dir /b /s *.zip` ) do "C:\Program Files (x86)\7-Zip\7z.exe" x "%f" -o"%~pf%~nf"
注意:cmd用变量
%f
的路径(实际上是目录名,包括末尾的反斜杠)替换%pf
,用文件名(不带文件扩展名)替换%nf
.无需使用外部工具即可完成此操作-我将如何执行此操作,以便选择要将其解压缩到的文件夹?您只需添加-o开关即可。按照我们前面的示例,您可以使用“C:\Program Files\7-Zip\7z.exe”e*.Zip-oc:\temp\destinationMagical,对于我来说,每个Zip都位于另一个文件夹中,因此它是“C:\Program Files\7-Zip\7z.exe”e/。rarOP正在批处理文件中寻找解决方案。