我正在尝试动态设置SetOverwrite
状态以在无条件替换某些文件或仅在我的设置提供一些较新版本时替换它们之间进行选择。
我试过用 logiclib
${if} $isReinstall = 1
SetOverwrite on
${debug} "SetOverwrite on (overwrite)"
${else}
SetOverwrite ifnewer
${debug} "SetOverwrite ifnewer"
${endif}
File "foo"
并与经典IntCmp
IntCmp $isReinstall 1 0 +3 +3
SetOverwrite on
goto +2
SetOverwrite ifnewer
File "foo"
但似乎没有任何效果:如果我的文件foo
已经存在于磁盘上,它总是被跳过。我$isReinstall
的存在1
与否。
指令流中的最后一条SetOverwrite
语句(无论 logiclib 宏如何)似乎重载了前一条语句。
如果我SetOverwrite on
在指令之前添加另一个File
,则文件被正确替换。
我的分析正确吗?我如何在运行时决定文件是否可以替换?