NSIS - 根据FileExists定义InstallDir

8 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}
Run Code Online (Sandbox Code Playgroud)

有人可以帮帮我吗?

谢谢

And*_*ers 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
Run Code Online (Sandbox Code Playgroud)