728x90
반응형
아래는 WSH 로 만든 스크립트로, 서버의 특정 디렉토리 아래의 있는 파일들 중에서 지정한 기간이 지난 파일을 삭제해주는 스크립트입니다.
아래 소스에서 45줄의 주석을 제거하셔야 실제 파일이 삭제됩니다. 현재는 주석으로 막아 놔서 메시지는 남지만 실제 파일이 삭제되지는 않습니다.
참고시시기 바랍니다.
Option Explicit ON ERROR RESUME NEXT Err.Clear Dim strRootPath, nDays, nDeleteSubDir nDays = 7 nDeleteSubDir = 0 If WScript.Arguments.Count = 0 Then WScript.Echo " 사용법 : cscript DeleteSubDirNFiles.vbs[ ] [DEL_EMPTY_DIR=0]" Wscript.Quit(0) End If If WScript.Arguments.Count > 0 Then strRootPath = WScript.Arguments(0) ' 첫번째 파라미터 : 삭제할 파일이 들어 있는 디렉토리 End If If WScript.Arguments.Count > 1 Then nDays = CInt(WScript.Arguments(1)) ' 두번째 파라미터 : 지정된 날짜가 지난 파일 삭제 End If If WScript.Arguments.Count > 2 Then nDeleteSubDir = CInt(WScript.Arguments(2)) ' 세번째 파라미터 : 빈 하위 디렉토리를 삭제할 것인가? 0 - 삭제안함 / 1 - 삭제함 End If If nDays = 0 Then WScript.Echo "오류: 두 번째 파라미터에 잘못된 값이 설정되었습니다." WScript.Echo " 두번째 파라미터는 삭제할 기준 범위 숫자 값(1이상)으로 지정한 숫자만큼의 이전 날짜의 지난 파일을 삭제처리하게 됩니다." Wscript.Quit(0) End If Dim oFSO Set oFSO = CreateObject("Scripting.FileSystemObject") Dim oFolder, oSubFolder Set oFolder = oFSO.GetFolder(strRootPath) DeleteSubDirNFiles oFolder, nDays, nDeleteSubDir ' 지정된 폴더의 파일 삭제 Public Sub DeleteFiles(oFolder, nDays, nDeleteSubDir) Dim oFile For Each oFile In oFolder.Files If Int(Now() - oFile.DateLastModified) >= nDays Then 'oFile.Delete WScript.Echo oFile.Name & " 'Deleted'" End If Next End Sub Public Sub DeleteSubDirNFiles(oFolder, nDays, nDeleteSubDir) Dim oSubFolder DeleteFiles oFolder, nDays, nDeleteSubDir ' 폴더내의 모든 파일 삭제 ' 지정한 루트 폴더에 포함된 서브 폴더의 삭제 For Each oSubFolder In oFolder.SubFolders WScript.Echo "DeleteSubDir Enter : " & oSubFolder.name DeleteSubDirNFiles oSubFolder, nDays, nDeleteSubDir ' 재귀호출 If nDeleteSubDir = 1 Then oSubFolders.Delete End If Next End Sub
'Windows' 카테고리의 다른 글
윈도우즈 서버의 터미널 세션 제한 걸기(유휴 시간 10분 이상 경과시 강제 끊기) (0) | 2009.06.24 |
---|---|
VMWare Workstation 6.x에서 VM 시작시 2014 오류 대처법 (0) | 2009.05.26 |
WSI - WIndows Installer 패키지 파일 (0) | 2009.04.03 |
윈도우즈 서버의 불필요한 파일 및 디렉토리 삭제 (0) | 2009.02.04 |
미디어 주소(Mac Address; 맥 어드레스)를 알아내는 방법 (0) | 2008.10.24 |