NSIS $ {LineRead}不提供正确的信息

时间:2018-05-30 13:34:25

标签: nsis

对于安装程序,我需要一个特定的删除功能。 如果我有一个txt文件,其中我有我需要删除的所有文件夹。

txt文件以这种方式构建:

  

addon1Success
  addon2Success
  addon3Failed

我有大约10行。

主要问题是当我打印出来自的信息时 ${LineRead} - 函数不是像我的测试用例30中那样的数字 也许我的代码中有错误:

 !include "${NSISDIR}\Include\LogicLib.nsh"
 !include "myLogger.nsh" ;
 Var i

 Function removeFolder
 IntOp $i $i * 0
  ${ForEach} $i 0 $lineCount + 1
    ${LineRead} "$TEMP\addonInstallerPreFolder\addons\postponeLog.txt" "$i - $i" $0
    !insertmacro LOGGER_WRITE "DEBUG Text $0" "0"

    ${StrContains} $0 "Success" $1
    ${if} $1 == "Success"
        Push "Success"
    ${else}
        Push "Failed"
    ${endif}
    Push $0
    Call Slice
    Pop $R0

    ${if} $revertAfter == "true"
        CopyFiles "$INSTDIR\addons\backup_$R0\*" "$INSTDIR\addons\$R0"
        !insertmacro LOGGER_WRITE "Revert Backupfolder to AddonFolder $R0" "0"
    ${endif}
    !insertmacro LOGGER_WRITE "Removed Backup folder of $R0" "0"
    Delete "$INSTDIR\addons\backup_$R0"
${next}
FunctionEnd

我希望你能帮助我找到我只得到一个数字而不是文字的决心

1 个答案:

答案 0 :(得分:0)

@Cris 看看你的代码

${LineRead} "$TEMP\addonInstallerPreFolder\addons\postponeLog.txt" "$i - $i" $0

第一:第三个变量“[LineNumber]”应该是一个数字。看起来你有变量$ i - $ i。我相信你只需要“$ i”。

第二:文档中的第四个变量 LineRead函数显示使用$ R0。看起来你在函数中使用$ 0,在代码的某些区域使用$ 0,但在其他区域使用$ R0。