Installation 将文件内容写入新文件只会写入字符串的一半

Installation 将文件内容写入新文件只会写入字符串的一半,installation,nsis,Installation,Nsis,我试图做一个非常简单的任务,在NSIS中读取一个文件,然后将这些文件内容写入一个新文件 我的问题:不是所有的文件内容都被写入新文件,只有一半被写入。出什么事了 Jeez NSIS最近让我头疼不已:( 这是我的密码: Section #Read file StrCpy $R9 "" #$R9 will hold the file contents FileOpen $R7 "C:\MyFolder\usermenu.4d" "r" Read

我试图做一个非常简单的任务,在NSIS中读取一个文件,然后将这些文件内容写入一个新文件

我的问题:不是所有的文件内容都被写入新文件,只有一半被写入。出什么事了

Jeez NSIS最近让我头疼不已:(

这是我的密码:

Section
    #Read file
    StrCpy $R9 ""             #$R9 will hold the file contents
    FileOpen $R7 "C:\MyFolder\usermenu.4d" "r"

    ReadFileLoop:
        FileRead $R7 $R6
        StrCpy $R9 "$R9$R6"
        #DetailPrint "$R6"
        IfErrors +1 ReadFileLoop

    FileClose $R7

    #Write file contents to new file
    ClearErrors
    FileOpen  $3 "C:\Users\me\Desktop\abc.txt" w
    FileWrite $3 "$R9"
    FileClose $3
SectionEnd

NSIS变量的大小是固定的,如果文件大于限制,则其中一些变量将不适合。您应该将写入另一个文件作为读取循环的一部分


当然,如果您想要未修改的副本,您可以使用
CopyFiles

长度取决于NSIS构建(通常为1024个字符,但自定义构建可以将其提升到例如8192),您可以知道使用
$NSIS\u MAX\u STRLEN