7Zip命令行使用e参数解压时意外生成子文件夹的问题排查
7Zip命令行使用e参数解压时意外生成子文件夹的问题排查
嗨,我来帮你揪出命令里的问题~
你当前的命令写法犯了一个典型的参数混用错误,导致7Zip误解了你的需求:
C:\Program Files\7-Zip>7z.exe e C:\Temp\BFJv124i13-35540519-293262.zip -aos -oC:\Temp\Unzipped\*.xml -r
问题出在这两个地方:
-o参数的写法错误:-o是用来指定目标解压文件夹的,你把文件过滤规则*.xml写到了路径后面,7Zip会误以为你要把文件解压到C:\Temp\Unzipped\*.xml这个“文件夹”里,自然会生成不符合预期的子目录。- 多余的
-r参数:e命令本身的作用就是忽略压缩包内的目录结构,直接提取所有文件,-r(递归搜索)在这里完全没必要,反而可能干扰路径处理逻辑。
修正后的正确命令:
C:\Program Files\7-Zip>7z.exe e C:\Temp\BFJv124i13-35540519-293262.zip -aos -oC:\Temp\Unzipped *.xml
命令解释:
-oC:\Temp\Unzipped:直接指定目标解压文件夹,注意路径结尾不要加反斜杠或通配符,7Zip会自动识别并创建(如果不存在)。*.xml:放在命令最后,作为文件过滤规则,告诉7Zip只提取压缩包内所有层级的xml文件,且直接放到目标文件夹根目录下,和你用GUI操作的效果完全一致。
试试这个命令,应该就能得到你想要的结果啦~
备注:内容来源于stack exchange,提问作者user3629010
相关产品推荐
相关产品推荐

