在Winrar中排除文件夹

Mar*_*ins 12 winrar

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
Run Code Online (Sandbox Code Playgroud)

我正在执行:

C:\>"c:\program files\winrar\winrar.exe" a -r !tmp1.rar !tmp1
Run Code Online (Sandbox Code Playgroud)

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

排除开关是-x<filepathpattern>并且可以包括多次.

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

-x*\f2\*
Run Code Online (Sandbox Code Playgroud)

删除内容,但离开f2

-xf2
Run Code Online (Sandbox Code Playgroud)

什么都不做 - 包括所有

-x\f2
Run Code Online (Sandbox Code Playgroud)

什么都不做 - 包括所有

-x*\f2
Run Code Online (Sandbox Code Playgroud)

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

-x\f2\
Run Code Online (Sandbox Code Playgroud)

不,什么都不做 - 包括所有.所以它有GOT ......

-x*\f2\
Run Code Online (Sandbox Code Playgroud)

地狱不,什么都不做 - 包括所有.我已经知道了

-x*\f2\*
Run Code Online (Sandbox Code Playgroud)

删除内容,但离开f2.我们走吧......

-x*f2\
Run Code Online (Sandbox Code Playgroud)

什么都不做 - 包括所有.GRRRR.啊哈!怎么样...

-x!tmp1\f2\
Run Code Online (Sandbox Code Playgroud)

不,什么都不做 - 包括所有.WTF.好吧,所以GOT要......

-x!tmp1\f2
Run Code Online (Sandbox Code Playgroud)

圣洁的莫莉,它奏效了!嗯,那怎么来....

-x*\f2
Run Code Online (Sandbox Code Playgroud)

不起作用?这是一个小恶魔,让我沿着这条疯狂的道路开始,应该有效!

鉴于这一切,我是否敢于尝试*/a/*追踪目录,删除内容和目录?

-x*\a
Run Code Online (Sandbox Code Playgroud)

不起作用,当然,什么都不做.

-x*\*\a
Run Code Online (Sandbox Code Playgroud)

不起作用,当然,什么都不做.

-x!tmp1\*\a
Run Code Online (Sandbox Code Playgroud)

不.但...

-x*\a\*
Run Code Online (Sandbox Code Playgroud)

删除两个目录的内容,但保留文件夹.所以,在绝望中我可以使用-ed不会存储空文件夹的开关,但这是一个广泛的黑客,我想消除指定的文件夹不是所有空文件夹.

随着我对winrar的不满,我正在向前传递信息的指挥棒,我们将知道如何使用通配符而不是使用-ed开关专门排除文件夹及其内容.

cod*_*sfy 15

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

也许你只需要这样:

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

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


And*_*rew 6

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

-x*\f2
Run Code Online (Sandbox Code Playgroud)

所以整个命令行是:

"C:\Program Files\WinRAR\Rar.exe" a -m5 -s !tmp1.rar !tmp1 -x*\f2
Run Code Online (Sandbox Code Playgroud)

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

!tmp1\f1\a\a.txt
!tmp1\f1\f1.txt
!tmp1\f1\a
!tmp1\f1
!tmp1
Run Code Online (Sandbox Code Playgroud)

同样,如果您使用-x*\a,a则排除所有文件夹,存储:

!tmp1\f1\f1.txt
!tmp1\f2\f2.txt
!tmp1\f1
!tmp1\f2
!tmp1
Run Code Online (Sandbox Code Playgroud)

最后,结合两个参数(-x*\f2 -x*\a),你得到这个:

!tmp1\f1\f1.txt
!tmp1\f1
!tmp1
Run Code Online (Sandbox Code Playgroud)