【发布时间】:2015-03-27 10:55:31
【问题描述】:
我想让用户通过安装完成页面中的 .bat 文件执行已安装的应用程序。代码如下:
!define INSTALL_DIR $PROGRAMFILES64\(some folder)
!define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink"
Function LaunchLink
SetOutPath "${INSTALL_DIR}"
ExpandEnvStrings $0 %COMSPEC%
Exec '"$0" /C "${INSTALL_DIR}\my.bat"'
FunctionEnd
它在大多数情况下都按预期工作。但如果我同时拥有:
C:\Program Files\(some folder) 和
C:\Program Files (x86)\(some folder) >
使用 my.bat 文件,我可以在 Program Files (x86) 中执行。我还尝试硬编码 .bat 文件的确切路径,而不是使用 ${INSTALL_DIR} 常量,但仍然是同样的问题。
我究竟做错了什么?我错过了什么吗?
【问题讨论】:
-
如果您将 /C 更改为 /K,您可以在 Process Explorer 中检查 cmd.exe 的命令行。 NSIS 是否将正确的路径传递给您的批处理文件?
标签: batch-file 32bit-64bit nsis