# FileAppend

在文件的结尾处追加文本(如果需要，首先创建文件)。

FileAppend [, Text, Filename]

#### 参数

Text | 要追加到文件的文本。此文本可以包含换行符(`n)来开始新的一行。另外，可以使用一个连续部分将一个单独的长行分解成多个较短的部分。 如果 Text 为空，Filename 将被创建为一个空白文件(但如果文件已存在，它的修改时间将被更新)。 如果 Text 是 %ClipboardAll% 或一个之前被指定为 ClipboardAll 的变量，Filename 将会被剪贴板的全部内容无条件地覆盖(也就是不需要 FileDelete)。
Filename | 要被追加的文件名，如果没有指定一个绝对路径，将假设它在 %A_WorkingDir% 中。 二进制模式：要以二进制方式而不是文本方式追加的话，在文件名前添加星号。这将使换行符(`n)被写成一个单独的换行(LF)而不是 Windows 标准的 CR+LF(回车+换行)。例如：*C:\My Unix File.txt 如果文件尚未被打开(由于在文件读取循环中)，那么即使 Text 包含任何一对回车和换行(`r`n)，文件也将自动以二进制方式打开。换言之，上一段提到的星号选项将自动生效。不过，当 Text 包含 `r`n 时指定星号可以改善性能，因为程序将不需要检索 Text 中的 `r`n 。 标准输出 (stdout)：给 Filename 指定一个星号 (*) 将使 Text 以标准输出(stdout)发送。这样的文本可以重定向到一个文件、传送到另一个 EXE 程序或被高级的文本编辑器获取。例如，如果在一个命令提示符中，将可以有效地输入以下文本： "%ProgramFiles%\AutoHotkey\AutoHotkey.exe" "My Script.ahk" >"Error Log.txt" 不过，以标准形式输出的文本并不会在执行它的命令提示符中出现。这可以通过将一个脚本的输出传送给另一个命令或程序来解决。例如： 1) "%ProgramFiles%\AutoHotkey\AutoHotkey.exe" "My Script.ahk" |more 2) For /F "tokens=*" %L in ('""%ProgramFiles%\AutoHotkey\AutoHotkey.exe" "My Script .ahk""') do @Echo %L

#### ErrorLevel

出错时，ErrorLevel 被设为 1，否则为 0。

#### 注意

要覆盖一个已存在的文件，需在使用 FileAppend 前用 FileDelete 命令删除文件。

文本附加到文件后，目标文件自动关闭(除了在文件读取/写入循环中，当 FileAppend 以它的单参数方式使用时)。

#### 相关命令

FileRead, file-reading loop, FileReadLine, IniWrite, FileDelete, OutputDebug, continuation sections

#### 示例

    FileAppend, Another line.`n, C:\My Documents\Test.txt

    ;下面的例子中，使用了连续部分来增强文本的可读性和可维护性：
    FileAppend,
    (
    一行文本。
    默认的，在上一行和这行之间的硬回车(Enter)将被写入文件。
     此行被一个 tab(制表符) 错开；默认的，这个制表符也将被写入文件。
    变量引用例如 %Var% 被默认地扩展。
    ), C:\My File.txt

    ;下面这个例子演示了怎样使用操作系统内建的 FTP 命令自动化上传文件到 FTP 。此脚本已在 Windows XP 和 98se 上测试过。

    FTPCommandFile = %A_ScriptDir%\FTPCommands.txt
    FTPLogFile = %A_ScriptDir%\FTPLog.txt
    FileDelete %FTPCommandFile% ; 以免前一次运行时被过早地终止而影响本次。

    FileAppend,
    (
    open host.domain.com
    username
    password
    binary
    cd htdocs
    put %VarContainingNameOfTargetFile%
    delete SomeOtherFile.htm
    rename OldFileName.htm NewFileName.htm
    ls -l
    quit
    ), %FTPCommandFile%

    RunWait %comspec% /c ftp.exe -s:"%FTPCommandFile%" >"%FTPLogFile%"
    FileDelete %FTPCommandFile% ;出于安全考虑而删除文件。
    Run %FTPLogFile% ;显示日志文件，以供查阅。

翻译：lwjiee 修正：天堂之门 menk33@163.com 2008年11月7日