7-Zip命令行:静默提取(重复)


16

可能重复:
如何禁用7-Zip的输出?

我想使用7z.exe命令提示符来无提示地/安静地提取档案。我不想使用第三方脚本或API。7-Zip是否支持安静的命令行提取?


7zip没有静默模式。因此,如果您不想看到输出,则可以使用“屏幕”。开始一个新屏幕,然后运行7zip提取命令,然后使用“ Ctrl-A + d”从屏幕上分离。屏幕将在后台运行,您将看不到输出。您可以在需要时重新连接屏幕以查看发生了什么。完成后,您可以结束“屏幕”会话。
bgth

Answers:


7

7-Zip没有用于命令行提取的显式“安静”或“静默”模式。

在Stack Overflow上有一个类似的问题,“无声地”提取7-Zip文件-命令行选项,给出了使用Python脚本代码的可能解决方案:

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

然后在超级用户上遇到类似的问题,当提取.7z文件时将7-Zip的命令行输出重定向到Windows上的/ dev / null时,报告问题主要是输出,并且通过将输出发送到NULL,您可以使系统在本质上保持安静:

尝试这样做:

%COMSPEC%/ c“%ProgramFiles%\ 7-Zip \ 7z.exe” ...


注意:我使用了别人编辑的答案。将`> NUL`放在命令行字符串的末尾是可行的。我只是将其标记为答案以提高回答率,因为我无法删除此信息。
振荡cretin

有时我也会做同样的事情。就像您所做的那样,请注意,当发生这种情况时,答案不是很正确,只是最方便的答案。
音乐

6

是的,它确实支持命令行使用。打开命令提示符并导航到安装文件夹(通常为C:\ Program Files \ 7-Zip),然后键入:

7z -h

结果如下:

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

Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...]
       [<@listfiles...>]

<Commands>
  a: Add files to archive
  b: Benchmark
  d: Delete files from archive
  e: Extract files from archive (without using directory names)
  l: List contents of archive
  t: Test integrity of archive
  u: Update files to archive
  x: eXtract files with full paths
<Switches>
  -ai[r[-|0]]{@listfile|!wildcard}: Include archives
  -ax[r[-|0]]{@listfile|!wildcard}: eXclude archives
  -bd: Disable percentage indicator
  -i[r[-|0]]{@listfile|!wildcard}: Include filenames
  -m{Parameters}: set compression Method
  -o{Directory}: set Output directory
  -p{Password}: set Password
  -r[-|0]: Recurse subdirectories
  -scs{UTF-8 | WIN | DOS}: set charset for list files
  -sfx[{name}]: Create SFX archive
  -si[{name}]: read data from stdin
  -slt: show technical information for l (List) command
  -so: write data to stdout
  -ssc[-]: set sensitive case mode
  -ssw: compress shared files
  -t{Type}: Set type of archive
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]: Update options
  -v{Size}[b|k|m|g]: Create volumes
  -w[{path}]: assign Work directory. Empty path means a temporary directory
  -x[r[-|0]]]{@listfile|!wildcard}: eXclude filenames
  -y: assume Yes on all queries

因此,这是一个无提示提取的示例:

7z x "C:\Path\To\File.zip" -y > nul

11
他不是在问命令选项,而是在问命令行的静默操作。
音乐

3
是的 实际上,我将结果通过管道传输到文本文件并搜索“ quiet”和“ silent”,因为我认为回答者的示例未显示任何内容。
振荡cretin

2
沉默对不同的人可能意味着不同的事情。我以为OP将读取并应用他们想要的开关,但是我当然可以提供一个示例。
EBGreen

3
不回答问题。您的答案在哪里显示静音/安静模式?
NickG

太棒了,我想在构建过程中减少垃圾邮件,而将管道调整为空正是我所需要的。
马特·克莱因
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.