다른 명령
AutoIt 문자열 포함 파일 검색 프로그램 예제
- 특정 폴더(및 하위폴더)의 모든 텍스트 파일(.txt)에서 사용자가 입력한 문자열이 포함된 파일을 찾아 목록을 보여주는 프로그램
코드
#include <File.au3> #include <Array.au3> Global $sFolder = InputBox("폴더 선택", "검색할 폴더 경로를 입력하세요:", @ScriptDir) If Not FileExists($sFolder) Then MsgBox(16, "오류", "해당 폴더가 존재하지 않습니다.") Exit EndIf Global $sFind = InputBox("문자열 입력", "검색할 문자열을 입력하세요.") If $sFind = "" Then MsgBox(48, "알림", "검색할 문자열을 입력하지 않았습니다.") Exit EndIf Global $aTxtFiles _FileListToArrayRec($sFolder, "*.txt", $FLTAR_FILES, $FLTAR_RECUR, $FLTAR_NOSORT, $aTxtFiles) If @error Then MsgBox(64, "결과", "해당 폴더(및 하위폴더)에 텍스트 파일이 없습니다.") Exit EndIf Global $aResult[1] = [0] For $i = 1 To $aTxtFiles[0] Local $sFile = $aTxtFiles[$i] Local $hFile = FileOpen($sFile, 0) If $hFile = -1 Then ContinueLoop Local $sContent = FileRead($hFile) FileClose($hFile) If StringInStr($sContent, $sFind) > 0 Then _ArrayAdd($aResult, $sFile) EndIf Next If UBound($aResult) = 1 Then MsgBox(64, "검색 결과", "검색한 문자열이 포함된 파일이 없습니다.") Else _ArrayDisplay($aResult, "검색 결과 - " & ($aResult[0]) & "개 파일 발견", "", 0, Default, "파일 경로") EndIf
특징 및 참고사항
- 상단에 입력창이 두 번 나타나며, 첫 번째 창에서 폴더 경로, 두 번째 창에서 검색 문자열을 입력합니다.
- 해당 폴더(하위폴더 포함)의 **모든 .txt 파일**을 탐색하여, 입력한 문자열이 포함된 파일 전체 경로 목록을 표(리스트박스)로 보여줍니다.
- 내장 AutoIt 함수만 사용하므로 별도의 외부 라이브러리 설치 없이 바로 동작합니다.
- 검출된 파일이 없으면 "검색한 문자열이 포함된 파일이 없습니다."라는 메시지가 출력됩니다.
추가설명
- `StringInStr` 함수로 대소문자를 구분합니다.
- 대소문자를 무시하고 싶으시면 `StringInStr($sContent, $sFind, 2)`로 인자를 추가하시기 바랍니다.
- 파일 포맷을 추가하고 싶다면 `*.txt` 부분을 수정하세요(예: `*.log;*.md`)
추가적으로 기능 확장이나 사용자 인터페이스 개선이 필요하시면 언제든 문의해 주시기 바랍니다.