排除 Winrar 中的文件夹

问题描述 投票:0回答:4

Winrar 的一天

我想做的就是使用通配符排除文件夹及其内容,即使在阅读文档之后,它也变成了一个猜谜游戏......

所以我的测试床看起来像:

C:\!tmp1\f1
C:\!tmp1\f1\f1.txt
C:\!tmp1\f1\a
C:\!tmp1\f1\a\a.txt
C:\!tmp1\f2
C:\!tmp1\f2\f2.txt
C:\!tmp1\f2\a
C:\!tmp1\f2\a\a.txt

我正在执行:

C:\>"c:\program files\winrar\winrar.exe" a -r !tmp1.rar !tmp1

这给了我一个以 !tmp1 作为根目录(唯一的顶级文件夹)的 rar。

排除开关是

-x<filepathpattern>
,并且可以包含多次。

因此,鉴于我们想要排除 f2 及其所有子内容...

-x*\f2\*

删除内容,但留下 f2

-xf2

什么都不做 - 包括所有

-x\f2

什么都不做 - 包括所有

-x*\f2

什么都不做 - 包括所有(现在我很生气),所以肯定是..

-x\f2\

不,什么也不做——包括所有。所以它一定是...

-x*\f2\

不,什么都不做——包括所有。我已经知道了

-x*\f2\*

删除内容,但保留 f2。我们继续前进...

-x*f2\

不执行任何操作 - 包括所有操作。咕噜咕噜。啊哈!怎么样...

-x!tmp1\f2\

不,什么也不做——包括所有。 WTF。好吧,所以它必须是......

-x!tmp1\f2

天哪,它成功了!嗯嗯,那怎么会……

-x*\f2

不起作用? 就是这个小恶魔把我送上了这条疯狂的道路,应该起作用的!

鉴于这一切,我敢尝试去寻找

*/a/*
目录,删除内容和目录吗?

-x*\a

不起作用,当然,什么也没做。

-x*\*\a

不起作用,当然,什么也没做。

-x!tmp1\*\a

不。但是...

-x*\a\*

删除两个目录的内容,但保留文件夹。因此,在绝望中我可以使用

-ed
开关,它不会存储空文件夹,但这是一个广泛的黑客,我想消除指定的文件夹而不是所有空文件夹。

随着我对 winrar 的敌意与日俱增,我正在传递信息的接力棒,着眼于那辉煌的一天,那时我们将知道如何使用通配符而不是使用

-ed
开关来专门排除文件夹及其内容。

winrar
4个回答
16
投票

(很老的问题,但仍然可能相关)

也许您只需要这个:

-x*\f2 -x*\f2\*

两个排除开关,应删除目录 f2 及其所有内容。


9
投票

现在是一个更老的问题,但遇到了这个问题,所以我重现了你的文件夹结构,至少现在(Winrar 5.11,不是最新的,但很新),这是有效的:

-x*\f2

所以整个命令行是:

"C:\Program Files\WinRAR\Rar.exe" a -m5 -s !tmp1.rar !tmp1 -x*\f2

这就是 .rar 文件中存储的内容:

!tmp1\f1\a\a.txt
!tmp1\f1\f1.txt
!tmp1\f1\a
!tmp1\f1
!tmp1

同样,如果您使用

-x*\a
,所有
a
文件夹都会被排除,存储以下内容:

!tmp1\f1\f1.txt
!tmp1\f2\f2.txt
!tmp1\f1
!tmp1\f2
!tmp1

最后,结合两个参数 (

-x*\f2 -x*\a
),你会得到:

!tmp1\f1\f1.txt
!tmp1\f1
!tmp1

2
投票

要管理要排除的大量文件,您可以创建文本文件并写入相对于源文件夹的所有排除文件/文件夹:

1)创建文件list.txt,写入排除的文件/文件夹的名称 注意:*指的是源,所有文件/文件夹都是相对于源文件夹的

* 2 * 3

2)运行命令

       rar a -r  [email protected] target.rar source-folder

0
投票

就这么简单: 右键单击要压缩的文件夹,选择“添加到存档”,在打开的小对话框窗口中转到“文件”选项卡,然后在“要排除的文件”字段中输入要排除的文件夹名称,如下所示: 假设您想在压缩中排除所有名为“styles”的文件夹,请输入:

*款式/

node.js 程序员的常见示例:您想排除“node_modules”文件夹吗? 只需在“要排除的文件”字段中输入此内容即可:

*节点模块/

您可以添加其他要排除的内容,只需用空格分隔即可。 示例:

*node_modules/*dist/*.txt

© www.soinside.com 2019 - 2024. All rights reserved.