IfFileExists命令运行3个命令行

时间:2016-05-31 16:29:45

标签: nsis

我如何IfFileExists命令的结果运行三行,而不仅仅是第一行。

在下面的代码中,IfFileExists的结果是TemWSConfig,必须执行NaoTemWSConfig命令的3行。

目前TemWSConfig之后的第2行和第3行始终在运行

  IfFileExists "$INSTDIR\IntegradorWS.exe.Config" TemWSConfig NaoTemWSConfig  
  TemWSConfig:        
    File "..\IntegradorWS\bin\x86\Release\AppInstalado.config"
    Rename "$INSTDIR\IntegradorWS.exe.Config" "$INSTDIR\Antigo_IntegradorWS.exe.Config"
    Rename "$INSTDIR\AppInstalado.config" "$INSTDIR\IntegradorWS.exe.Config"  
  NaoTemWSConfig:
    File "..\IntegradorWS\bin\x86\Release\IntegradorWS.exe.Config"  

1 个答案:

答案 0 :(得分:1)

NSIS不会像这样跳过,您可以通过切换有问题的说明来验证:

Section
; Fake the IntegradorWS.exe.Config file for this example:
StrCpy $INSTDIR $temp
File "/oname=$INSTDIR\IntegradorWS.exe.Config" "${__FILE__}"

IfFileExists "$INSTDIR\IntegradorWS.exe.Config" TemWSConfig NaoTemWSConfig  
  TemWSConfig:        
    DetailPrint "TemWSConfig:1"
    DetailPrint "TemWSConfig:2" 
    DetailPrint "TemWSConfig:3"   
  NaoTemWSConfig:
    DetailPrint "NaoTemWSConfig:1"   

; Clean up
Delete "$temp\IntegradorWS.exe.Config"
SectionEnd

这意味着问题必须与File指令一致。确保您已调用SetOutPath,以便知道从哪里提取。如果您更改了SetOverwrite等,则可以跳过文件提取。