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