Board logo

标题: [文件操作] 7z命令行如何只解压指定压缩包里的指定目录下的文件 [打印本页]

作者: freesoft00    时间: 2016-11-19 11:49     标题: 7z命令行如何只解压指定压缩包里的指定目录下的文件

本帖最后由 pcl_test 于 2016-11-19 15:47 编辑

7z命令行有点复制看着。
例如解压缩
7z e archive.7z-oc:\soft *.cpp
从压缩档案 archive.7z 中释放 *.cpp 文件到 c:\soft 文件夹

例如我的这个archive.7z有文件结构。只想解压缩archive.7z\Settings目录下的所有文件,这个命令应该如何写呢?
还有解压缩archive.7z\Settings目录下的txt文件如何写?
谢谢!
作者: pcl_test    时间: 2016-11-19 15:57

  1. 7z x "archive.7z" "Settings"
  2. 7z x "archive.7z" "Settings\*.txt"
复制代码

作者: freesoft00    时间: 2016-11-19 18:37

本帖最后由 freesoft00 于 2016-11-20 14:11 编辑

回复 2# pcl_test

我使用了e参数,因为不需要绝对路径。
这个目录Settings\目录下面的文件
11.txt
22.log
33.dll
44
55
test\
test2\
有test和test2子目录,其中也有文件。
我想解压缩Settings\目录下面的几个没有扩展名的文件44和55,
使用:
7z e "archive.7z" "Settings\*.*" 这样只解压缩了有扩展名的文件
使用:
7z e "archive.7z" "Settings"或者7z e "archive.7z" "Settings\*" 这样子目录的文件也都解压缩了。
应该如何写才能符合我的要求呢?
谢谢!
作者: freesoft00    时间: 2016-11-20 14:09

顶贴,多谢了
作者: pcl_test    时间: 2016-11-20 18:45

本帖最后由 pcl_test 于 2016-11-20 19:08 编辑

方法一
排除文件夹,提取文件
  1. 7z x "archive.zip" "Settings\" -x!*\test*\
复制代码
排除文件夹,排除有扩展名文件,提取无扩展名文件
  1. 7z x "archive.zip" "Settings\" -x!*\test*\ -x!*\*.*
复制代码
方法二
  1. 7z l "archive.zip" "Settings\"
复制代码
套进for语句里根据attr和name筛选要提取的内容
作者: freesoft00    时间: 2016-11-21 12:01

回复 5# pcl_test


    再次感谢!我试试。
作者: chishingchan    时间: 昨天 23:36

本帖最后由 chishingchan 于 2024-11-4 23:38 编辑

回复 5# pcl_test


下载:https://7-zip.org/a/7zr.exe
同问,如何使用 7zr.exe 只解压指定压缩包里的指定目录下的文件?谢谢!

例如:https://github.com/upx/upx/relea ... upx-4.2.4-win32.zip
使用 7zr.exe 如何解压(提取)upx-4.2.4-win32.zip 压缩包里面的 upx.exe 文件?
作者: aloha20200628    时间: 2 小时前

本帖最后由 aloha20200628 于 2024-11-5 12:37 编辑

回复 7# chishingchan

可用以下一行流代码完成 》将当前目录下的 "upx-4.2.4-win32.zip" 中的 "upx.exe" 解压到当前目录...
若不用 -r 参数,则须指明目标文件在压缩包里的全路径位置如 "\abc\xyz\upx.exe"
以下代码假设7z命令行版的全路径是 "C:\Program Files\7-Zip\7zC.exe"
  1. "C:\Program Files\7-Zip\7zC.exe" e -r -y "upx-4.2.4-win32.zip" "upx.exe"
复制代码





欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2