7z:是否可以有条件地排除文件?

7z: Is it possible to exclude files conditionally?

可以使用 7zip -x 开关将文件排除在压缩文件之外,这也允许使用通配符。所以我可以像这样排除所有文本文件 7z a output.zip myfolder -x\!*.txt.

现在我希望一些 txt 文件不被排除在外,如果它们有一个特殊的名称,就像所有这样命名的文本文件:*-KEYWORD.txt

我尝试将 exclude 开关与 include 开关一起使用,例如 7z a -xr\!*.txt -ir\!*KEYWORD.txt output.zip myfolder,但是一旦调用了 exclude 开关,include 开关就不会似乎再次重新包含排除的文件。

是否可以在 7z 语法中只包含这样命名的文本文件,同时排除所有其他文本文件?

所以这在一个命令中似乎是不可能的,尤其是在同时使用 include 和 exclude 开关的情况下。

我现在在我的脚本中使用的解决方案就是做两个命令,第一个排除所有以*.txt结尾的文件,然后另一个7z命令将所有文件附加到包中,如*-KEYWORD.txt。这不是很好,但它有效。