在NSI脚本中使用$ {StrTok}

时间:2014-03-10 17:27:30

标签: nsis uninstall strtok

我编写了一个小的NSI脚本来获取子字符串,解析为逗号:

!include "StrFunc.nsh"
${StrTok} 
OutFile abc.exe

Section "jj" main_section

SectionEnd 

Function .onInit

${StrTok} $0 "b,lah" "," "L" "0"

FunctionEnd

以上代码完美无缺。 但是当我尝试在卸载宏中使用StrTok时,它一直给我“无效命令:{StrTok}”错误。

请有人告诉我:

  1. 如何在卸载宏中使用'StrTok'?

  2. 在上面的代码片段中,为什么需要第二行?它意味着什么?

  3. 谢谢!

1 个答案:

答案 0 :(得分:0)

第一个$ {StrTok}创建了该函数,然后调用该函数。要在卸载程序中使用它,您必须使用$ {UnStrTok}:

!include "StrFunc.nsh"
${StrTok}
${UnStrTok}

Section
  ${StrTok} ...
SectionEnd

Section Uninstall
  ${UnStrTok} ...
SectionEnd

修改 这是另一个例子(使用NSIS v2.46测试):

!include "StrFunc.nsh"
${UnStrTok}

!macro Uninstall 
${UnStrTok} $1 "b,lah" "," "L" "0" ;
MessageBox mb_ok $1
Delete "$temp\un.exe"
!macroend
Section "Uninstall"
!insertmacro Uninstall
SectionEnd
Section "Install"
WriteUninstaller "$temp\un.exe"
SectionEnd