如何比较NSIS中的两个文件?

如何比较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

我使用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        
        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”


我真的不太明白你想做什么,因为“比较文件”通常意味着一个只读操作,你也在写,但你似乎并没有用一个新的不同的行替换一个特定的旧行…

谢谢仅表示其附加。我需要替换值而不是附加。问题是,如果用户在静默模式下再次运行,它将使用默认值而不是更改的值。因此需要比较旧属性值并将其写入新属性。谢谢。我已参考此链接