SMALL
이 스크립트는 IIS 특정 폴더에서 30일 이상 된 .log 파일을 자동으로 삭제하는 역할을 합니다.
@echo off
setlocal
set "target_folders=D:\weblog\W3SVC1 D:\weblog\W3SVC2"
set "days_to_keep=30"
for %%f in (%target_folders%) do (
pushd "%%f"
forfiles /p "%%f" /m "*.log" /d -%days_to_keep% /c "cmd /c del @path"
popd
)
1. 기본적인 설정
@echo off setlocal
- @echo off : 스크립트 실행 시 명령어를 화면에 출력하지 않음.
- setlocal : 지역 변수를 설정하여 실행 후 원래 환경을 유지하도록 함.
2. 삭제 대상 폴더 및 유지 기간 설정
set "target_folders=D:\weblog\W3SVC1 D:\weblog\W3SVC2"
set "days_to_keep=30"
- target_folders : 로그 파일이 저장된 폴더들을 지정.
→ D:\weblog\W3SVC1 와 D:\weblog\W3SVC2 - days_to_keep : 유지할 로그 파일의 기간을 설정 (30일)
3. 루프를 이용한 폴더별 정리
for %%f in (%target_folders%) do (
pushd "%%f"
forfiles /p "%%f" /m "*.log" /d -%days_to_keep% /c "cmd /c del @path"
popd
)
pushd "%%f"
forfiles /p "%%f" /m "*.log" /d -%days_to_keep% /c "cmd /c del @path"
popd
)
📍 각 폴더를 순회하며 .log 파일을 삭제
- for %%f in (%target_folders%) do (...)
- target_folders 목록을 하나씩 가져와 %%f 변수에 저장
- 예: %%f = D:\weblog\W3SVC1 → %%f = D:\weblog\W3SVC2
- pushd "%%f"
- cd 명령어처럼 해당 폴더로 이동
- (pushd를 쓰면 popd로 원래 폴더로 복귀 가능)
- forfiles /p "%%f" /m "*.log" /d -%days_to_keep% /c "cmd /c del @path"
- forfiles 명령어를 이용해 특정 조건의 파일을 찾고 삭제
- /p "%%f" : 해당 폴더 내에서 검색
- /m "*.log" : .log 파일만 대상으로 함
- /d -%days_to_keep% : 30일 이상된 파일만 선택 (-%days_to_keep%은 30일 전 날짜를 의미)
- /c "cmd /c del @path" : 찾은 파일을 삭제
- popd
- pushd로 이동한 폴더에서 원래 위치로 돌아옴
LIST
'IT > 윈도우' 카테고리의 다른 글
윈도우 네트워크 티밍(NetSwitchTeam) 설정 방법 (0) | 2025.02.17 |
---|---|
윈도우 WWN 확인 (0) | 2025.02.16 |
윈도우 DSR 루프백 이더넷 설정 (0) | 2025.02.16 |
윈도우 CMD & MSC 명령어 (0) | 2025.02.16 |
윈도우 SID 확인 및 초기화 (0) | 2025.02.16 |