如何在不将批处理文件复制到 c 中的 7zip 文件夹的情况下运行 7zip 批处理

Posted

技术标签:

【中文标题】如何在不将批处理文件复制到 c 中的 7zip 文件夹的情况下运行 7zip 批处理【英文标题】:How to run a 7zip batch without copying the batch file to the 7zip folder in c 【发布时间】:2014-06-23 10:56:05 【问题描述】:

我创建了一个批处理文件来压缩我的备份,但只有将批处理文件复制到 C 盘上的 7zip.exe 文件夹时,批处理文件才有效;否则它不起作用。如何从任何位置运行我的批处理文件?

这是我的命令:

7z a -mhe -p1234 -t7z "D:\Batch test\2\%datetimef%.7z" "D:\Batch test\1*.*" -mx0

【问题讨论】:

【参考方案1】:
PATH %PATH%;"c:\7ZIP";
7z a -mhe -p1234 -t7z "D:\Batch test\2\%datetimef%.7z" "D:\Batch test\1*.*" -mx0

c:\7zip 是 7zip 所在的文件夹。

问题是您的7z.exe 不在您的PATH 变量中,无法找到和执行。当它在同一目录中时,可以找到并且执行没有问题。出于脚本目的您可以使用PATH 命令编辑 %PATH% 变量,也可以通过环境变量进行编辑。

【讨论】:

你能澄清你的答案吗?为什么这个命令会起作用,为什么 OP 的命令不起作用? 有一个永久的方法来设置 %PATH% var: Setx PATH "C:\7ZIP;%PATH%;"【参考方案2】:

您可以像这样放置 7z 二进制文件的完整路径:

"c:\7zip"\7z a -mhe -p1234 -t7z "D:\Batch test\2\%datetimef%.7z" "D:\Batch test\1\*.*" -mx0

您明确告诉解释器在哪里查找二进制文件。

【讨论】:

以上是关于如何在不将批处理文件复制到 c 中的 7zip 文件夹的情况下运行 7zip 批处理的主要内容,如果未能解决你的问题,请参考以下文章

使用 7zip 命令将目录中的文件归档到单个 zip [关闭]

如何在不将其备份到 iCloud 的情况下为我的应用程序提供演示数据?

如何在不将 onscroll 处理程序附加到每个容器的情况下捕获页面上的所有滚动事件

在不压缩的 Powershell 上使用 7zip

如何在项目中包含/引用文件而不将其复制到项目目录?

如何在不将旧根保存在堆栈中的情况下切换到新根?