如何比较NSIS中的两个文件?
我使用nsis创建了exe。我使用以下代码比较了两个文件如何比较NSIS中的两个文件?,nsis,Nsis,我使用nsis创建了exe。我使用以下代码比较了两个文件 Function compare IfFileExists "$INSTDIR\old.properties" 0 filenotfound FileOpen $0 "$INSTDIR\old.properties" "r" FileOpen $1 "$INSTDIR\new.properties" "w" loop: FileRead $0 $2
Function compare
IfFileExists "$INSTDIR\old.properties" 0 filenotfound
FileOpen $0 "$INSTDIR\old.properties" "r"
FileOpen $1 "$INSTDIR\new.properties" "w"
loop:
FileRead $0 $2
MessageBox MB_OK "old $2"
FileRead $1 $3
MessageBox MB_OK "new $3"
IfErrors done
strcmp $3 $2 loop here
here:
FileWrite $1 $2
Goto loop
done:
FileClose $0
FileClose $1
filenotfound:
MessageBox MB_OK "File not found"
FunctionEnd
读取旧属性的第一个文本。若两个文件的下一个字都匹配,则比较新属性的第一个文本。否则,应在新属性文件中替换旧属性值。但若字符串不匹配,则不会发生替换新属性文件中的字符串的情况。
如何解决这个问题?我做错了什么?文件打开$1“$INSTDIR\new.properties”“w”将删除new.properties中的所有内容。如果要保留其内容,请使用“a”
我真的不太明白你想做什么,因为“比较文件”通常意味着一个只读操作,你也在写,但你似乎并没有用一个新的不同的行替换一个特定的旧行…谢谢仅表示其附加。我需要替换值而不是附加。问题是,如果用户在静默模式下再次运行,它将使用默认值而不是更改的值。因此需要比较旧属性值并将其写入新属性。谢谢。我已参考此链接