我正在尝试创建一个 7-Zip 存档,它可以压缩某个文件夹(仅指定一个!),同时排除某个文件扩展名。我想出了这个:
"PATH-TO-7Z.EXE" a archive.7z "C:\tools\" -t7z -mx=9 -mhe=on -mtc=on -sccUTF-8 -scsUTF-8 -ssc- -ssw -y -slp -r -x!*.avi
Run Code Online (Sandbox Code Playgroud)
但是,这样做的作用是扫描整个 c 驱动器以查找工具(C:\tools\
在上面的示例中作为目标给出)作为关键字并将它找到的任何内容添加到我的存档中。
有没有办法避免这种情况?意思是只存档,C:\tools\
同时排除指定的扩展名。
我认为这与-r
选项有关,但我不确定是什么。
7-Zip 根据当前目录进行搜索。这段信息没有明确记录,但它隐含在 Add 命令的帮助中:
Run Code Online (Sandbox Code Playgroud)cd /D c:\dir1\ 7z a c:\archive3.zip dir2\dir3\
存档 c:\archive3.zip 中的文件名将包含 dir2\dir3\ 前缀,但不会包含 c:\dir1\ 前缀。
在启动 7-zip 之前,您需要更改当前目录,因此您的命令如下所示:
pushd "C:\Tools" & C:\Path\To\7z.exe a -r -x!*.avi archive.7z * & popd
如果您愿意,还可以将该字符串拆分为 3 行。
另外值得注意的是,命令行中有很多不必要的选项:
-ssc-
:Windows系统默认-t7z
:仅当无法从扩展名确定存档类型时才需要(例如,-tzip
如果要创建.xpi
文件则必须指定)-mhe=on
:您需要仔细检查,但我认为标头加密对未加密的存档没有任何作用。-scsUTF-8
: 默认设置-sccUTF-8
:仅当您想要读取控制台输出(或重定向到文件)并且您实际上需要 UTF-8 来实现该特定目的时才需要-y
-e
:根本(或-x
仅)不适用于“添加”命令。-ssw
:如果您认为需要此功能,您应该考虑在 VSS 快照上进行操作,以便确保您获得正在读取的文件的一致副本。如果这是与您已经测试过其行为的特定应用程序一起使用的,那么您可以忽略这一点-slp
:确保您已阅读帮助并了解此选项的要求和效果,并且已对其进行测试以确保它不会对您的环境产生不利影响。 归档时间: |
|
查看次数: |
4431 次 |
最近记录: |