NSIS - 尝试比较两个字符串时出错
NSIS - Error trying to compare two strings
我正在尝试比较一个字符串和一个具有完全相同值但不起作用的变量。
流程是:
1. 打开一个只有一行 Node.Js version;
的文件
2.读取行并存入$NODE_VERSION
3. 关闭文件
4. 检查 $NODE_VERSION
是否等于 "v8.11.3" -- 这总是 returns 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:\Windows\nodeversion.txt"<br/>
ClearErrors<br/>
FileOpen [=10=] "C:\Windows\nodeversion.txt" r<br/>
IfErrors done<br/>
FileRead [=10=] $NODE_VERSION<br/>
FileClose [=10=]<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 [=10=] "$windir\nodeversion.txt" r
FileRead [=10=]
${StrTrimNewLines}
FileClose [=10=]
MessageBox mb_ok "Line 1=||"
${If} "v8.11.3" == ""
; ...
${EndIf}
SectionEnd
我正在尝试比较一个字符串和一个具有完全相同值但不起作用的变量。
流程是:
1. 打开一个只有一行 Node.Js version;
的文件
2.读取行并存入$NODE_VERSION
3. 关闭文件
4. 检查 $NODE_VERSION
是否等于 "v8.11.3" -- 这总是 returns 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:\Windows\nodeversion.txt"<br/>
ClearErrors<br/>
FileOpen [=10=] "C:\Windows\nodeversion.txt" r<br/>
IfErrors done<br/>
FileRead [=10=] $NODE_VERSION<br/>
FileClose [=10=]<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 [=10=] "$windir\nodeversion.txt" r
FileRead [=10=]
${StrTrimNewLines}
FileClose [=10=]
MessageBox mb_ok "Line 1=||"
${If} "v8.11.3" == ""
; ...
${EndIf}
SectionEnd