【问题标题】:How to compress all files in a directory using 7-zip?如何使用 7-zip 压缩目录中的所有文件?
【发布时间】:2019-08-05 23:27:16
【问题描述】:

如何使用 7-zip 命令工具 (7z.exe) 将目录中的所有文件(包括没有扩展名的文件)存档而不存档子目录?

如果我使用带点 (*.*) 的通配符,它​​可以工作,但仅适用于带有扩展名的文件。即使使用-r- 开关(根据帮助文件应该是默认设置),使用*(或根本不使用通配符)也不起作用,因为它递归地归档源目录中的所有内容。我只需要将所有文件(有些可能没有扩展名)存档在直接目录中(没有子文件夹,也没有递归)。有什么想法吗?

以下命令不起作用:

7z.exe a c:\output.7z c:\input -r- 7z.exe a c:\output.7z c:\input\* -r-

如果这很重要,我正在从 PowerShell 脚本调用 7-zip。

【问题讨论】:

    标签: powershell archive 7zip


    【解决方案1】:

    7-Zip 将使用一组文件对象作为输入,因此应该可以:

    & 7z.exe a C:\output.7z (Get-ChildItem C:\Input\* -File)
    

    【讨论】:

    • 确实(+1);值得一提的是,将 PowerShell 数组传递给外部程序(例如 7z)转换为将数组的元素作为单个参数传递。换句话说:7z 不接受这样的 array - 在命令行(PowerShell 之外)上,没有 array 的概念 - 它接受单个参数的无限数量,在 CLI 帮助 (7z -h) 中反映为 <file_names>...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多