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日