NSIS $ {LineRead} не дает правильную информацию - PullRequest
0 голосов
/ 30 мая 2018

Для установщика мне нужна определенная функция удаления.В случае, если у меня есть TXT-файл, где у меня есть все папки, где мне нужно удалить.

TXT-файл создается следующим образом:

addon1Successaddon2Successaddon3Failed

У меня около 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 голосов
/ 30 мая 2018

@ Cris Просмотр вашего кода

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

Первый: третья переменная «[LineNumber]» должна быть одной цифрой.Похоже, у вас есть переменная $ i - $ i.Я считаю, что вам просто нужно "$ i".

Второе: четвертая переменная в документации Функция LineRead показывает использование $ R0.Похоже, вы используете $ 0 для функции, и используете $ 0 в некоторых областях вашего кода, но используете $ R0 в других областях.

...