NSIS — определить InstallDir в зависимости от FileExists

Что я хочу сделать с этим скриптом, так это скопировать файл в папку, которая уже существует. Но он может быть в корне (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}

Кто-нибудь может мне помочь?

Спасибо


person Community    schedule 20.10.2009    source источник


Ответы (1)


Установите $instdir в .onInit с помощью 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
person Anders    schedule 20.10.2009
comment
То есть что-то вроде: strCpy $INSTDIR "C:\Your\Path" в блоке Function .onInit. - person ereOn; 19.11.2011