매월 1일에 마지막으로 수정된 파일을 제외하고 폴더 내에서 2일보다 오래된 파일을 삭제해야 합니다. Forfiles는 예외를 지원하지 않습니다. 운영 체제는 Windows Server 2003입니다. 어떤 생각이 있으신가요?
도움을 주셔서 감사합니다!
답변1
여기에서 빠르고 더러운 VBScript는 파일이 해당 월 1일인지 여부를 열거하기 위해 영국 날짜 형식을 가정합니다. 다른 날짜 형식을 사용하는 경우 트림 명령을 변경하여 적절한 숫자 위치를 가져옵니다. 예를 들어 미국 날짜는 Left(objFile.DateLastModified, 2) = 01이 아니라 Mid(objFile.DateLastModified, 4, 2) = 01이 됩니다.
어쨌든, 지저분한 코드로 인해 죄송합니다. 하지만 시작하셔야 합니다.
strFolder = "C:\DeleteTest"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(strFolder)
Set colFiles = objFolder.Files
strDaysOld = 2
'Get files from target folder
For Each File in colFiles
set objFile = objFSO.GetFile(strFolder & "\" & File.Name)
'Enumerate last modified date/time and delete if older than 2 days but where the date doesn't start with '01'
If objFile.DateLastModified < (Date() - strDaysOld) AND NOT Left(objFile.DateLastModified, 2) = 01 Then
objFSO.DeleteFile objFile, true
End If
Next
답변2
프로그래밍/스크립팅 언어에 대한 익숙함과 편안함에 따라 달라질 수 있다고 말하고 싶습니다.
예를 들어 다음은 PowerShell입니다.예. 나는 Python, Perl, (*nix/Linux) 변종에 좀 더 편파적이며 Python에서는 이와 유사한 것이 꽤 쉬울 것입니다.예).
두 예제 모두 구글링에서 나온 것입니다.powershell 다음보다 오래된 파일 삭제또는python 다음보다 오래된 파일 삭제...대안을 확인하고 싶은 경우.
나는 실제로 필요한 적이 없기 때문에 GUI 도구나 빠른 설정 도구에 익숙하지 않습니다. 귀하가 요청하는 모든 내용은 대부분의 경우 20줄 미만으로 코딩할 수 있습니다.