如何通过批处理

时间:2017-03-16 14:41:31

标签: windows batch-file windows-7

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

@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%

如何正确打开此类文件?

1 个答案:

答案 0 :(得分:1)

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