본문 바로가기
IT/윈도우

윈도우 로그 자동 삭제 (스크립트 포함)

by JGSHIN 2025. 2. 16.
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
)

📍 각 폴더를 순회하며 .log 파일을 삭제

  1. for %%f in (%target_folders%) do (...)
    • target_folders 목록을 하나씩 가져와 %%f 변수에 저장
    • 예: %%f = D:\weblog\W3SVC1 → %%f = D:\weblog\W3SVC2
  2. pushd "%%f"
    • cd 명령어처럼 해당 폴더로 이동
    • (pushd를 쓰면 popd로 원래 폴더로 복귀 가능)
  3. 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" : 찾은 파일을 삭제
  4. 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
📧 이메일 문의
by @ 2025 JGSHIN