我要用此脚本执行的操作是将文件复制到已经存在的文件夹中。
但是它可以位于根目录(C :)或程序文件中。

那里是我想要的,但是此脚本不起作用:

  ${If} ${FileExists} "C:\Cisco Systems\VPN Client\Profiles"
    InstallDir "C:\Cisco Systems\VPN Client\Profiles"
  ${ElseIf} ${FileExists} "$PROGRAMFileS\Cisco Systems\VPN Client\Profiles"
    InstallDir "$PROGRAMFileS\Cisco Systems\VPN Client\Profiles"
  ${EndIf}

有人可以帮我吗?

谢谢

最佳答案

使用StrCpy在.onInit中设置$ instdir:

!include LogicLib.nsh

InstallDir "C:\Something\something" ; Used if neither of the files exist.

Function .onInit
${If} ${FileExists} "C:\Cisco Systems\VPN Client\Profiles"
  StrCpy $InstDir "C:\Cisco Systems\VPN Client\Profiles"
${ElseIf} ${FileExists} "$ProgramFiles\Cisco Systems\VPN Client\Profiles"
  StrCpy $InstDir "$ProgramFiles\Cisco Systems\VPN Client\Profiles"
${EndIf}
FunctionEnd

关于NSIS-根据FileExists定义InstallDir,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1595381/

10-11 00:30