본문 바로가기

WEB/ASP

[vbs] 특정일이 지나면 파일 지워주는 소스

시스템팀에서 요청한 적이 있어서 만들어 보았습니다.

IIS의 로그를 지우는 내용입니다.

소스만 보셔도 다들 아실 것 같아 소스만 넣었습니다.

중간중간에 주석이 있기도 합니다.

저도 여기저기서 퍼와서 만든겁니다.


기능 - 특정일이 지나면 지정된 폴더의 파일과 그 폴더의 서브폴더들의 파일들까지 삭제합니다.

         그리고 시작시간과 지워진 파일의 이름과 경로 그리고 종료일을 만들어 파일로 저장합니다.


소스 - OldFileDelete.vbs

Option Explicit


Const strRootPath = "C:\inetpub\logs\LogFiles\" ' 삭제할 파일이 들어 있는 디렉토리

Const nDays = 0 '초과일수 : 2일 경과한 파일 삭제


Dim oLog, LogPath, LogFile

Dim oFSO, oFolder, oSubFolder, oFile


Set oFSO = CreateObject("Scripting.FileSystemObject")

Set oFolder = oFSO.GetFolder(strRootPath)


'파일 생성

LogPath = "C:\test\"

LogFile = Int(Now()) & ".txt"


If Not oFSO.FolderExists(LogPath) Then

oFSO.CreateFolder(LogPath)

End If


Set oLog = oFSO.CreateTextFile(LogPath & LogFile, true)

oLog.WriteLine("시작일 - " & Now())


' 지정한 루트 디렉토리의 파일 삭제

For Each oFile In oFolder.Files

 If Int(Now() - oFile.DateLastAccessed) >= nDays Then

'  WScript.Echo oFile.Name  & " Deleting"

  oLog.WriteLine("파일명 - " & oFile.Name & " 경로 - " & oFolder)

  oFile.Delete

 End If

Next


' 지정한 루트 디렉토리에 포함된 서브 디렉토리의 파일 삭제

For Each oSubFolder In oFolder.SubFolders

' WScript.Echo oFolder.name & " ??"

 For Each oFile In oSubFolder.Files

  If Int(Now() - oFile.DateLastAccessed) >= nDays Then

   oLog.WriteLine("파일명 - " & oFile.Name & " 경로 - " & oSubFolder)

   oFile.Delete

'   WScript.Echo oFile.Name  & " 'Deleted'"

  End If

 Next

Next


oLog.WriteLine("종료일 - " & Now())


Set oLog = Nothing

'WEB > ASP' 카테고리의 다른 글

ASP와 VBS에 대한 이해와 차이  (0) 2013.02.22
Illegal assignment: 'i'  (0) 2013.02.12
ASP - 변수 선언  (0) 2012.03.05