如何通过批处理启动 .wzmul 文件

How to launch a .wzmul file through batch

我有一个在用户计算机上安装 WinZip 的脚本,但是,我需要将 .wzmul 文件移动到正确的位置,我已经成功完成了所有这些操作,但是当我尝试启动该文件时使用 start 命令,它将启动另一个命令。

@echo off

set winzip_path=\mgtutils01\windows7apps\WinZip\WinZip15
set exec_name=winzip150.msi
set reg_name=WinZip.wzmul
set reg_path="C:\Program Files (x86)\WinZip"

pushd %winzip_path%

xcopy "%winzip_path%\%exec_name%" "%USERPROFILE%\Desktop"
msiexec /i "%USERPROFILE%\Desktop\%exec_name%" /QN /L*V "%USERPROFILE%\AppData\Local\winzip_log.txt"
@echo "DONE!!"
xcopy "%winzip_path%\%reg_name%" %reg_path%
start /wait %reg_path%\%reg_name%

如何正确打开这种文件?

根据我的经验,您第一次启动 Winzip 时,如果程序目录中存在多许可证,程序将进行注册。但本质上,由于引用路径的方式,批处理文件存在一些问题。最佳做法是不要在变量中分配引号,而是使用引号来保护变量中的空格和特殊字符。基本上,START 命令将引号视为 Window TITLE。所以对批处理文件的这些更改应该有效。您还对 Winzip 路径使用 PUSHD,因此您无需在代码中指定 Winzip 路径。它已经是工作目录了。

@echo off

set "winzip_path=\mgtutils01\windows7apps\WinZip\WinZip15"
set "exec_name=winzip150.msi"
set "reg_name=WinZip.wzmul"
set "reg_path=C:\Program Files (x86)\WinZip"

pushd "%winzip_path%"

xcopy "%exec_name%" "%USERPROFILE%\Desktop\"
msiexec /i "%USERPROFILE%\Desktop\%exec_name%" /QN /L*V "%USERPROFILE%\AppData\Local\winzip_log.txt"
@echo "DONE!!"
xcopy "%reg_name%" "%reg_path%\"
start "" /wait "%reg_path%\%reg_name%"

POPD