"静默地"提取7-Zip文件 - 命令行选项

sam*_*bha 29 7zip

我想在Python脚本中提取7-Zip档案.它工作正常,除了它吐出提取细节(这在我的情况下是巨大的).

有没有办法在提取时避免这些冗长的信息?我没有找到任何"静默"命令行选项7z.exe.

我的命令是

7z.exe -o some_dir x some_archive.7z
Run Code Online (Sandbox Code Playgroud)

小智 34

我在寻找同样的时候遇到过这个,但我自己解决了!假设使用Windows/DOS处理命令,更简单的解决方案是将命令更改为:

7z.exe -o some_dir x some_archive.7z > nul
Run Code Online (Sandbox Code Playgroud)

也就是说,将输出定向到空文件而不是屏幕.

或者您可以将输出管道输出到DOS"find"命令以仅输出特定数据,即

7z.exe -o some_dir x some_archive.7z | FIND "ing archive"
Run Code Online (Sandbox Code Playgroud)

这只会产生以下输出.

创建存档some_archive.7z

要么

更新存档some_archive.7z**


我的最终解决方案是将命令更改为

... some_archive.7z | FIND /V "ing  "
Run Code Online (Sandbox Code Playgroud)

请注意'ing'后的双倍空格.这导致以下输出.

7-Zip 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18

Scanning

Updating some_archive.7z


Everything is Ok
Run Code Online (Sandbox Code Playgroud)

这将删除单个文件处理,但会生成整体操作的摘要,而不管操作类型如何.

  • 很好的解决方案。如果你不像我一样喜欢 Igor,你也可以使用以下命令删除 hom:`... some_archive.7z | 查找/V“ing” | 查找/V“伊戈尔·巴甫洛夫”` (2认同)

Jer*_*fin 10

一种可能性是生成子进程popen,因此它的输出将返回到父进行处理/显示(如果需要)或者完全被忽略(popen使用stdout=PIPE和创建对象以及stderr=PIPE能够从子进程检索输出) .

  • 什么是Windows上的等效解决方案?HTTP://stackoverflow.com/questions/5966063/redirect-7-zips-command-line-output-to-dev-null-on-windows-when-extracting-a-7z ... (2认同)

小智 6

就像他们说的那样,要隐藏大部分屏幕填充消息,你可以使用... some_archive.7z | FIND/V"压缩"但"FIND"也会删除包含该词的错误消息.你不会被警告.由于更新的7-zip版本,"FIND"也可能不得不改变.

7-zip有强制详细输出,没有静音模式,混合stderr和stdout(*),不保存Unix权限等.这些反标准行为将"7-zip"放在一个不好的地方进行比较时例如,"tar + bzip2"或"zip".

(*)"上游(伊戈尔巴甫洛夫)不希望为消息做出不同的输出,即使他多次被要求这样做:(" http://us.generation-nt.com/answer/bug-346463- p7zip-stdout-stderr-help-166693561.html - "Igor Pavlov不想改变这种行为" http://sourceforge.net/tracker/?func=detail&aid=1075294&group_id=111810&atid=660493