我通过更改路径变量来测试本地计算机中的数据存档的批处理脚本,以引用7zip包的位置。
我使用以下代码执行存档。
7za a -tzip \\tm1data-studio-dev\wds\WDS_DISTRIBUTION_01\TM1\USER_FILES\Target\Archival_%DD%_%MM%_%YYYY%_%HH%_%MN%.zip \\tm1data-studio-dev\wds\WDS_DISTRIBUTION_01\TM1\USER_FILES\Intermediate\
有没有办法在不改变路径变量的情况下使用7za.exe?
提前致谢!
答案 0 :(得分:0)
7za.exe
是 7-Zip 的独立版本,不需要任何其他DLL。
将7za.exe
存储在与批处理文件相同的目录中,我建议使用:
"%~dp0\7za.exe" a -tzip "\\tm1data-studio-dev\wds\WDS_DISTRIBUTION_01\TM1\USER_FILES\Target\Archival_%DD%_%MM%_%YYYY%_%HH%_%MN%.zip" "\\tm1data-studio-dev\wds\WDS_DISTRIBUTION_01\TM1\USER_FILES\Intermediate"
在批处理文件执行批处理文件时,命令行解释器将替换 %~dp0
,批处理文件的路径以反斜杠结尾。通过在命令提示符窗口call /?
中运行,输出此命令的帮助以解释%~dp0
。如果批处理文件执行时的当前工作目录与批处理文件的目录和7za.exe
不同,这将非常有用。
通过在命令提示符窗口中运行批处理文件并将第一行从@echo off
修改为@echo on
(如果存在的话),可以看到命令行解释器的作用。
此外,批处理文件中对环境变量的每个修改仅对批处理文件可见,并且所有应用程序都在此批处理文件中启动。 Windows在执行批处理文件时为命令解释程序创建整个环境变量表的副本。因此,npocmaka建议修改 PATH 是绝对安全的,因为只修改 PATH 的本地副本而不是系统变量 PATH 。