특정디렉토리내 오래된 파일 자동삭제하기
2012.11.15 20:15
원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어
Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
원문 : http://www.ischo.net -- 조인상 //시스템
엔지니어
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
1. VB스크립트 이용하기
아래의 비주얼베이직 스크립트를 작성하여 예약된 작업으로 돌린다.
Option Explicit
Const strRootPath = "D:\Temp\"
Const nDays = 30
Dim oFSO
Set oFSO = CreateObject("scripting.FileSystemObject")
Dim oFile
Dim oFolder
Set oFolder = oFSO.GetFolder(strRootPath)
For Each oFile In oFolder.Files
If Int(Now() - oFile.DateLastModified)
>= nDays Then
oFile.Delete
End If
Next
진한색 부분만 수정하여 돌리면 되고, 하위디렉토리에는 적용되지 않는다.
VB스크립트는 별도 설치없이 바로 동작하는 장점이 있지만, GNU find 처럼 특정 파일명 이름 규칙을 변경할 수 없음.
2. GNU find 를 이용하기
첨부파일의 GNU 툴을 설치하고 GNU의 find를 이용하여 구현.
아래의 배치파일을 만들어 예약된 작업으로 돌린다.
rem ###########################################################
rem # 오래된
폴더 삭제하기 2014.07.17
rem # 제작 : 조인상 chosim1@dsnw.net
rem
###########################################################
rem ###########################################################
rem # 삭제할
디렉토리
rem # 하위 디렉토리중 WEB-INF를 제외하고 30일이상 지난 모든 디렉토리 삭제
rem
###########################################################
cd
d:\acube\cn\upload
find2 . ! -name "WEB-INF" -type d -mtime +30 | sed -n
"2,$p" | sed -e "s/\//\\/g" | sed -e "s/$/""/g" | sed -e "s/\.\\/rmdir \/s \/q
\"/g" > del_list.bat
rem ###########################################################
rem # 임시파일
실행(실제 삭제는 여기서 이루어짐) 후 삭제.
rem
###########################################################
call
del_list.bat
del /q del_list.bat
좋은 자료 감사합니다.