IfFileExists命令运行3个命令行
问题描述:
IfFileExists
命令的结果如何运行三行而不仅仅是第一行。IfFileExists命令运行3个命令行
在下面的代码中是IfFileExists
的结果是TemWSConfig
,必须执行3行到NaoTemWSConfig
命令。
目前2号线和3 TemWSConfig
后,始终运行
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"
答
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
等文件提取可以跳过。
我不知道你在问什么。继续阅读后,似乎是矛盾的。首先,你声明'TemWSConfig'标签运行后的第一行,然后下面两行声称它只是第二行和第三行。 – idleberg
无论如何,你可以检查一些标准的东西。你是否有足够的权利写入'$ INSTDIR'(参见[RequestExecutionLevel](https://github.com/NSIS-Dev/Documentation/blob/master/Reference/RequestExecutionLevel.md)),并且你是否声明了'SetOutPath '在你发布的行之前? – idleberg