如何在NSIS中比较两个字符串

Raj*_*Raj 1 nsis

我想比较 NSIS 中的两个字符串,例如,下面代码的 else 条件如何做。

ReadRegStr $R0 HKLM "${PRODUCT_UNINST_KEY}" "InstallLocation"

if ;$R0 has some values then it needs to be copied else this " $INSTDIR "$PROGRAMFILES64\${PRODUCT_NAME}""values should be assigned to INSTDIR                                                                            
StrCpy  $INSTDIR "$R0"

 else
StrCpy  $INSTDIR "$PROGRAMFILES64\${PRODUCT_NAME}"
Run Code Online (Sandbox Code Playgroud)

And*_*ers 5

StrCmpStrCmpS指令可用于比较字符串:

StrCmp $myvar "somestring" 0 jump_to_if_not_equal
  DetailPrint "myvar was somestring"
  goto end
jump_to_if_not_equal:
  DetailPrint "not a match"
end:
Run Code Online (Sandbox Code Playgroud)

您还可以使用 LogicLib 助手宏:

!include LogicLib.nsh

${If} $myvar == "something"
  DetailPrint "match"
${Else}
  DetailPrint "not a match"
${EndIf}
Run Code Online (Sandbox Code Playgroud)