NSIS - 根据FileExists定义InstallDir

时间:2009-10-20 15:17:02

标签: nsis

我想用这个脚本做的是复制已经存在的文件夹中的文件。 但它可以在根(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}

有人可以帮助我吗?

谢谢

1 个答案:

答案 0 :(得分:10)

使用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