我们有一个批处理文件,它使用 Windows 10 内置的 zip 功能来压缩文件夹。这太不可预测了,并且在 1 小时的批处理作业中途失败,这需要我们重新开始整个过程。Windows 内置的 zip 功能不是控制台应用程序。它会调出用户界面元素,如果有人不单击“确定”按钮,它就会失败。
所以我开始使用 7z。它是一款便携式应用程序,没有依赖项,而且速度很快。我有一个批处理文件,其中当前工作目录是 c:\work\abuild\job。它有一个子文件夹 maintool\vendorA。我试图通过将 c:\work\abuild\job\maintool\vendorA 作为参数传递来创建 vendorA 文件夹的 zip 文件。它创建的 zip 仅包含 vendorA 内容,但保留了 zip 中的整个 c:\work\abuild\job\maintool\vendorA 路径。提取后,它最终创建了我不想要的文件夹结构。
我查看了 7z 的所有可用命令行参数。我没有找到一个可以让我这样做的参数。如果我使用以 .\ 开头的相对路径而不是绝对路径,我就可以实现我想要的效果。但这需要完全重写这个批处理文件。它是更大的批处理文件解决方案的一部分。
如果我是第一个遇到这个问题的人,我会感到惊讶。一定有解决办法。但我不知道怎么做。
感谢您的建议。