NSIS - 尝试比较两个字符串时出错



我正在尝试将字符串与具有完全相同值的变量进行比较,但不起作用。
流程为:
1. 打开一个只有一行 Node.js 版本的文件;
2. 阅读行并保存到$NODE_VERSION
3. 关闭文件
4. 检查$NODE_VERSION是否等于"v8.11.3"——这总是返回 false。

我已经:
1. 创建另一个变量,并为两者设置相同的值并进行比较。
2. 将 $NODE_VERSION 与字符串"v8.11.3"
进行比较 3.比较"1"="1"和工作。
4. 使用 if/endIf
5. 使用 StrCmp

Var /GLOBAL NODE_VERSION<br/>
Function .onInit<br/>
  ExecWait "node --version > C:Windowsnodeversion.txt"<br/>
  ClearErrors<br/>
  FileOpen $0 "C:Windowsnodeversion.txt" r<br/>
  IfErrors done<br/>
  FileRead $0 $NODE_VERSION<br/>
  FileClose $0<br/>
  StrCmp $NODE_VERSION "v8.11.3" 0 nobla<br/>
       Messagebox MB_OK "not true, or maybe"<br/>
  nobla:<br/>
 Messagebox MB_OK "not true"<br/>
 Messagebox MB_OK $NODE_VERSION<br/>
  ${If} $NODE_VERSION == "v8.11.3"<br/>
    Call uninstallNode<br/>
    Goto FinishInit<br/>
  ${EndIf}<br/>

我想进入一个真实的陈述

FileRead返回

的字符串中包含换行符,当您查找确切的字符串匹配项时,必须删除它们。

!include "LogicLib.nsh"
!include "StrFunc.nsh"
${StrTrimNewLines} ; Tell StrFunc.nsh to define this function for us
Section
FileOpen $0 "$windirnodeversion.txt" r
FileRead $0 $1
${StrTrimNewLines} $1 $1
FileClose $0
MessageBox mb_ok "Line 1=|$1|"
${If} "v8.11.3" == "$1"
  ; ...
${EndIf}
SectionEnd

相关内容

  • 没有找到相关文章

最新更新