NSIS - Define InstallDir depending on FileExists
nsis
Solution
Set $instdir in .onInit with StrCpy:
!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
Problem
What I want to do with this script is to copy a file in a folder who already exists. But it can be at the root (C:) or in the program files. There what I want, but this script doesn’t work: ``` ${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} ``` Someone can help me? Thank you