원문 : 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

 

 

 

(*.158.142.101)