⚠ 이 강좌는 오토핫키 v1을 다룹니다
지금 보시는 강좌는 구버전 오토핫키(v1.1)를 다루고 있습니다. 따라서 본 강좌의 내용은 현재 최신 오토핫키 버전 (v2.0)과 호환되지 않습니다. 구버전의 정보가 필요한 것이 아니라면, 가능한 한 새로운 사이트에 작성한 v2 강좌(https://ahkv2.pnal.dev)를 봐주시길 바랍니다.
이번 강에 배울 File관련 구문은 컴퓨터의 파일(특히 텍스트 파일)을 다룹니다. 파일을 다루는 명령어는 많지만, 우리는 파일을 쓰고, 지우고, 읽는 명령어만 66, 67강에서 배우도록 하겠습니다.
이번 강에서는 그 중에서 파일을 쓰고, 지우는 FileAppend와 FileDelete를 배우겠습니다.
파일을 쓰는 FileAppend
FileAppend는 텍스트 파일의 끝에 문자를 써주는 명령어입니다. 만약 파일이 없다면 파일을 새로 만들어서 문자를 작성해줍니다.
FileAppend [, Text, Filename, Encoding]
매개변수는 위와 같습니다.
- Text: 작성 할 내용입니다.
- FileName: 파일의 경로를 포함한 텍스트 파일의 이름입니다. 경로에 해당 파일이 없다면 파일을 생성합니다.
- Encoding: 작성 할 문자의 인코딩입니다. 보통 생략하는 경우가 많으나, 특정 문자가 깨질 시 UTF-16이나 UTF-8 등을 써주시면 됩니다.
예시를 드는 것이 낫겠지요. 아래처럼 스크립트를 작성해봅시다. 이번엔 특별히 바탕화면에 폴더를 만든 후, 해당 폴더에 스크립트 파일을 만들어주세요. (파일의 생성 위치를 감으로 익히는 과정입니다.)
FileAppend, 안녕하세요, 인사.txt
스크립트를 실행하니 인사.txt 파일이 생성되었습니다.
인사.txt의 내용은 안녕하세요로 적혀있네요. 스크립트에 써 준 그대로입니다.
여기서 한 번 더 스크립트를 실행시켜 보겠습니다.
안녕하세요 뒤에 안녕하세요가 한 번 더 써졌습니다. 메모장을 닫고, 스크립트의 내용을 아래처럼 바꾼 후 다시 실행시켜 보겠습니다.
FileAppend, `n이스케이프 시퀀스도 됩니다., 인사.txt
우리가 배웠던 대표적인 이스케이프 시퀀스인 `n 또한 줄바꿈으로 정상 입력 됩니다.
마지막 스킬로, 여러 줄을 작성하고 싶으실 땐 아래처럼 (괄호)로 묶어서 써주실 수 있습니다. 이렇게 사용해주시면 이스케이프 시퀀스를 일일이 작성하지 않으셔도 됩니다. 비단 FileAppend 뿐만이 아닌, 대부분의 Text 매개변수는 이런 식으로 사용할 수 있습니다. (MsgBox의 Text 매개변수에서도 되냐고요? 네, 됩니다. 이건 직접 해보세요.)
FileAppend,
(
여러줄 입력
이런식으로
괄호로 묶어주면
이스케이프 시퀀스 없이도
여러 줄로 입력할 수 있습니다.
), 여러줄.txt
참고로, FileName에 써주시는 파일 경로는 "상대 경로"입니다. 즉, File\File.txt로 쓰면 현재 스크립트가 있는 위치의 File폴더 안에 File.txt를 가리킵니다.
드라이브 문자 (C:, D: 등)을 사용해주시면 절대 경로로 입력할 수 있습니다.
파일을 삭제해주는 FileDelete
FileDelete는 말그대로 파일을 삭제해줍니다.
FileDelete, FilePattern
- FilePattern: 삭제 파일의 패턴입니다.
FilePattern 매개변수에는 파일의 경로를 써주시면 되고, 와일드 카드를 뜻하는 *를 이용하여 특정 규칙의 파일만 지울 수 있습니다. (그래서 FileName 매개변수가 아닌, FilePattern 매개변수입니다.)
*.txt
→ 모든 txt파일을 의미함 (예: abc.txt, 가나다.txt 등..)
text*.txt
→ 모든 text(문자).txt 파일을 의미함. (예: text1.txt, text2.txt, textA.txt, textxet.txt 등..)
지금까지 위에 있는 예제들을 모두 실행하셨다면 인사.txt파일과 여러줄.txt파일이 있을텐데요, 이를 FileDelete 명령어로 지워보겠습니다.
FileDelete, 인사.txt
FileDelete, 여러줄.txt
아까 생성되었던 txt 파일이 지워지는 것을 볼 수 있습니다.
다음 강에선 파일 읽기를 배워보도록 하겠습니다.
< 65. 프로그래밍 문제 (15) | 66. FileAppend/Delete | 67. FileRead(Line) >