从命令行使用7-Zip递归解压缩

时间:2015-07-17 19:44:13

标签: 7zip

我正在尝试使用命令行中的7-Zip解压缩几个.gz文件。我的文件在这样的目录中:

Desktop/copyto/1/
    file1.gz
    file2.gz
Desktop/copyto/2/
    file1.gz
    file2.gz
    file3.gz

我想以递归方式将所有.gz文件解压缩到每个原始位置,并在完成解压缩时删除剩余的.gz文件。

我没试过以下命令:

7z.exe x C:\Users\MYUSERNAME\Desktop\copyto\*\*.gz -r

我认为这会递归提取。我收到错误:

Processing archive: C:\Users\MYUSERNAME\Desktop\copyto\1\file1.gz
Can not open output file file1
Sub items Errors: 1

知道发生了什么事吗?

1 个答案:

答案 0 :(得分:0)

根据您的命令行,我的猜测是您当前的工作目录不是您的主目录(C:\Users\MYUSERNAME)或公共用户目录(C:\Users\Public)的任何子目录,这意味着您可能没有访问权限。例如,如果我从C:\Program Files\7-Zip运行以下内容,则会出现与7-Zip文件相同的错误:

C:\Program Files\7-Zip>7z x C:\Users\MYUSERNAME\Desktop\migrated\annex_k.7z -r

7-Zip [64] 9.38 beta  Copyright (c) 1999-2014 Igor Pavlov  2015-01-03

Processing archive: C:\Users\MYUSERNAME\Desktop\migrated\annex_k.7z

ERROR: Can not open output file : .\annex_k\include\annex_k\errno.h
Skipping    annex_k\include\annex_k\errno.h
ERROR: Can not open output file : .\annex_k\include\annex_k\handler.h
Skipping    annex_k\include\annex_k\handler.h
...
Extracting  annex_k\include\annex_k
Extracting  annex_k\include
Extracting  annex_k

Sub items Errors: 10

Archives with Errors: 1

Sub items Errors: 10

Kernel  Time =     0.031 =   39%
User    Time =     0.031 =   39%
Process Time =     0.062 =   78%    Virtual  Memory =      3 MB
Global  Time =     0.080 =  100%    Physical Memory =      4 MB

请注意,甚至没有创建annex_k目录:

C:\Program Files\7-Zip>dir /b
7-zip.chm
7-zip.dll
7-zip32.dll
7z.dll
7z.exe
7z.sfx
7zCon.sfx
7zFM.exe
7zG.exe
descript.ion
History.txt
Lang
License.txt
readme.txt

解决方案是提取到您具有访问权限的目录。您可以使用-oC:\Users\MYUSERNAME\Desktop\copyto\1之类的内容指定输出目录。如果您绝对需要在通常无法进行写访问的目录中执行此操作,则需要以管理员身份运行命令提示符并照常提取文件。