0
다음 스크립트를 수정하여 위치, 날짜 스탬프 및 확장자를 하드 코딩하지 않도록하고 명령 프롬프트에서 이러한 세부 정보를 입력 변수로 지정할 수 있습니다 (예 : "cscript del.vbs d : \ temp 16/08/2013 jpg ".하드 코딩 변수없이 vbs를 사용하여 파일 삭제
OPTION EXPLICIT
DIM strExtensionsToDelete,strFolder
DIM objFSO, MaxAge, IncludeSubFolders
' ************************************************************
' Setup
' ************************************************************
' Folder to delete files
strFolder = "d:\test\"
' Delete files from sub-folders?
includeSubfolders = TRUE
' A comma separated list of file extensions
' Files with extensions provided in the list below will be deleted
strExtensionsToDelete = "jpg"
' Max File Age (in Days). Files older than this will be deleted.
maxAge = 1
' ************************************************************
SET objFSO = CREATEOBJECT("Scripting.FileSystemObject")
DeleteFiles strFolder,strExtensionsToDelete, maxAge, includeSubFolders
wscript.echo "Finished"
SUB DeleteFiles(BYVAL strDirectory,BYVAL strExtensionsToDelete,BYVAL maxAge,includeSubFolders)
DIM objFolder, objSubFolder, objFile
DIM strExt
SET objFolder = objFSO.GetFolder(strDirectory)
FOR EACH objFile in objFolder.Files
FOR EACH strExt in SPLIT(UCASE(strExtensionsToDelete),",")
IF RIGHT(UCASE(objFile.Path),LEN(strExt)+1) = "." & strExt THEN
IF objFile.DateLastModified < (NOW - MaxAge) THEN
wscript.echo "Deleting:" & objFile.Path & " | " & objFile.DateLastModified
objFile.Delete
EXIT FOR
END IF
END IF
NEXT
NEXT
IF includeSubFolders = TRUE THEN ' Recursive delete
FOR EACH objSubFolder in objFolder.SubFolders
DeleteFiles objSubFolder.Path,strExtensionsToDelete,maxAge, includeSubFolders
NEXT
END IF
END SUB
이 수정 후에 스크립트가 어떻게 보이게되었는지 조언 해 주시겠습니까? –
@McSenstrum "date-stamp"는 유효한 변수 이름이 아닙니다. 인덱스 검사없이 .Arguments 컬렉션에 액세스하는 것은 위험합니다. –