텍스트를 파일 끝에 씁니다 (필요하면 먼저 파일을 생성합니다).
FileAppend , Text, Filename, Encoding
파일에 추가할 텍스트. 이 텍스트는 라인피드 문자 (`n)를 포함해 새줄을 시작할 수도 있습니다. 게다가, 기다란 한줄은 계속 섹션을 이용하여 더 짧은 여러 줄로 분리할 수 있습니다.
Text가 비어 있으면, Filename이 임시 파일로 생성됩니다 (그러나 그 파일이 이미 존재하면, 그의 수정 시간이 갱신됩니다).
Text가 %ClipboardAll%이거나 이전에 ClipboardAll의 값이 할당된 변수라면, Filename은 무조건 그 클립보드의 전체 내용으로 덮어쓰기 됩니다 (즉, FileDelete가 필요하지 않습니다).
추가될 파일의 이름. 절대 경로가 지정되어 있지 않으면 %A_WorkingDir%에 있다고 간주됩니다. 목표 디렉토리는 이미 존재해야 합니다.
End of line (EOL) translation: To disable EOL translation, prepend an asterisk to the filename. 이렇게 하면 각 라인피드 문자 (`n)가 윈도우즈의 표준 CR+LF 대신에 한개짜리 라인피드 (LF)가 씌여집니다. 예를 들어: *C:\My Unix File.txt
.
If the file is not already open (due to being inside a file-reading loop), EOL translation is automatically disabled if Text contains any carriage return and linefeed pairs (`r`n). 다른 말로, 앞 문단에서 기술한 별표 옵션이 자동으로 효력을 발휘합니다. 그렇지만 Text에 `r`n가 들어 있을 때 별표를 지정하면 수행성능이 향상됩니다. 왜냐하면 프로그램이 Text를 스캔해 `r`n을 찾을 필요가 없기 때문입니다.
표준 출력 (stdout): 별표 (*)를 Filename에 지정하면 Text는 표준 출력 (stdout)으로 전송됩니다. 그런 텍스트는 파일에 방향전환할 수 있고, 또다른 EXE로 파이프 처리해 보낼 수 있으며, 또는 환상적인 편집기로 나포할 수 있습니다. 예를 들어, 다음은 명령어 프롬프트에서 타자하면 유효합니다:
"%ProgramFiles%\AutoHotkey\AutoHotkey.exe" "My Script.ahk" >"Error Log.txt"
그렇지만, 표준출력으로 전송된 텍스트는 처음 기동된 프롬프트에 나타나지 않습니다. This can be worked around by 1) [v1.1.33+] compiling the script with the Ahk2Exe ConsoleApp directive, or 2) piping a script's output to another command or program. 예를 들어:
"%ProgramFiles%\AutoHotkey\AutoHotkey.exe" "My Script.ahk" |more
For /F "tokens=*" %L in ('""%ProgramFiles%\AutoHotkey\AutoHotkey.exe" "My Script .ahk""') do @Echo %L
[v1.1.20+]: 별표 두 개 (**)를 Filename에 지정하면 Text가 표준에러(stderr) 스트림으로 전송됩니다.
[AHK_L 42+]: FileEncoding으로 설정된 기본 인코딩을 오버라이드 합니다. Encoding은 같은 형식을 따릅니다.
[v1.1.04+]: 이 명령어는 실패하면 예외를 던질 수 있습니다. 더 자세한 정보는 실행시간 에러를 참조하십시오.
ErrorLevel은 문제가 있으면 1, 그렇지 않으면 0이 설정됩니다.
A_LastError는 운영 체제의 GetLastError() 함수의 결과가 설정됩니다.
기존의 파일을 덮어쓰려면, FileAppend를 사용하기 전에 FileDelete로 지우십시오.
목표 파일은 텍스트가 추가된 후 자동으로 닫힙니다 (단, FileAppend가 파일-읽기/쓰기 회돌이 안에서 단일-매개변수 모드를 사용할 때는 예외입니다).
[AHK_L 42+]: FileOpen()을 추가 모드로 사용하는 것이 FileAppend보다 더 섬세하게 제어할 수 있고 계속 파일을 열어 둘 수도 있습니다. 매번 파일을 열고 닫을 필요가 없습니다. 일단 파일이 추가 모드로 열리면 file.Write(string)
를 사용해 추가하면 됩니다. 파일 객체는 RawWrite/RawRead 또는 WriteNum/ReadNum를 통하여 이진 I/O도 지원합니다. 반면에 FileAppend는 오직 텍스트만 지원합니다.
FileOpen()/File Object, FileRead, 파일-읽기 회돌이, FileReadLine, IniWrite, FileDelete, OutputDebug, 계속 섹션
Creates a file, if necessary, and appends a line.
FileAppend, Another line.`n, C:\My Documents\Test.txt
계속 섹션을 사용해 가독성과 유지관리성을 향상시킵니다.
FileAppend, ( 한 줄의 텍스트. 기본으로, 이전 줄과 이 줄 사이의 하드 캐리지 리턴은 (Enter) 파일에 쓰여집니다. 이 줄은 탭 하나로 들여쓰기 됩니다; 기본으로, 탭도 파일에 씌여집니다. %Var%와 같은 변수 참조는 기본으로 확장됩니다. ), C:\My File.txt
운영 체제의 내장 FTP 명령어를 사용하여 FTP 업로드를 자동화 하는 법을 보여줍니다. 이 스크립트는 Windows XP에서 검증되었습니다.
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% ; 검토를 위해 로그 기록을 보여줍니다.