나는 친구와 가족의 컴퓨터 문제를 도우며 많은 시간을 보냈고, 다른 모든 문제보다 내가 계속해서 보게 되는 한 가지 문제는 임시 파일과 로그 파일이 디스크를 잡아먹는다는 것입니다. 공간이 줄어들고 결국 시스템이 느려집니다.
임시 인터넷 파일 폴더가 일반적인 원인이지만 제어판의 인터넷 옵션에서 파일이 삭제되도록 설정하기만 하면 되기 때문에 쉽게 해결할 수 있는 폴더입니다. 그러나 성가신 Windows 임시 폴더 또는 삭제되지 않는 임의의 정크가 계속 쌓이는 모든 응용 프로그램 로그 파일은 어떻습니까? 처음에는 별 문제가 되지 않지만 시간이 지남에 따라 쌓인 쓰레기는 쓸모없는 오래된 파일 더미가 됩니다.
잘 작성된 응용 프로그램은 더 이상 필요하지 않은 로그 또는 임시 파일을 삭제하지만 너무 많은 프로그램이 자동으로 제대로 정리되지 않아 몇 년이 지나면 컴퓨터가 매우 지저분해집니다. 그러나 특정 로그 폴더를 알고 있는 경우 - 바이러스 백신 알림 로그 폴더 또는 이와 유사한 것과 같은 Windows 임시 폴더 또는 응용 프로그램 로그 폴더인지 여부에 관계없이 다음 Windows 스크립트를 사용하여 오래된 로그 파일을 정기적으로 정리할 수 있습니다. 며칠보다.
Windows 스크립트로 임시 파일 정리
Windows 스크립팅을 처음 사용하는 경우 얼마 전에 작성한 WSH 자습서를 빠르게 살펴보십시오. 네트워크 설정을 변경하거나 바이러스 백신 또는 맬웨어 검사 소프트웨어를 자동으로 예약하는 등 Windows Script로 할 수 있는 멋진 작업이 많이 있습니다.
분명히, 이러한 응용 프로그램 로그 파일이나 임시 파일 폴더를 제어하기 위해 정리 루틴을 예약하려는 경우 Windows Script가 확실히 해결책입니다.
클린업 Windows 스크립트 작성
이 Windows 스크립트는 하나의 특정 디렉토리에 초점을 맞추고 며칠보다 오래된 수정 날짜가 있는 파일을 찾는 전체 디렉토리를 탐색합니다. 그런 다음 해당 파일을 삭제합니다. 그런 다음 스크립트는 모든 하위 디렉토리를 통해 동일한 검사 및 정리를 수행합니다. 복잡한 소리? 그렇지 않다. 스크립트의 첫 번째 부분은 다음과 같습니다.
Option ExplicitOn Error Resume Next
Dim oFSO, oFolder, sDirectoryPath
Dim oFileCollection, oFile, sDir
Dim iDaysOld
iDaysOld = 3
이 섹션에서는 정리하려는 디렉터리와 파일에 액세스하는 데 사용할 파일 시스템 변수를 선언합니다. "iDaysOld" 변수를 설정하면 보관하려는 파일의 기간이 스크립트에 알려집니다. 이 경우 3일이 지난 파일을 보관합니다.
다음은 매우 간단한 정리 섹션입니다.
' ***** CLEAR OUT OLD FILES IN LOG FOLDER *****sDirectoryPath = "C:\Users\Owner\AppData\Local\Temp\"
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder(sDirectoryPath)
Set oFileCollection = oFolder.Files
For each oFile in oFileCollection
If oFile.DateLastModified < (Date() - iDaysOld) Then
oFile.Delete(True)
End If
Next
위의 섹션은 Windows 파일 시스템에 연결한 다음 "sDirectoryPath" 변수로 정의한 디렉터리에 연결합니다. 이 첫 번째 루프는 디렉토리의 각 개별 파일을 살펴보고 수정된 날짜를 확인하고 정의한 파일의 수명과 비교합니다. 3일 이상 지난 경우 해당 파일에 대해 삭제 작업을 수행합니다.
이것은 파일에서 잘 작동하지만 Windows 임시 디렉토리와 같은 폴더의 모든 하위 디렉토리는 어떻습니까? 스크립트의 이 다음 섹션은 모든 하위 디렉토리를 통해 다음 파일을 만들고 그 안에 있는 파일에 대해서도 동일한 파일 작업을 수행합니다.
For Each oSubFolder In oSubFolderssDirectoryPath = "C:\Users\Owner\AppData\Local\Temp\" & oSubFolder
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder(sDirectoryPath)
Set oFileCollection = oFolder.Files
For each oFile in oFileCollection
If oFile.DateLastModified < (Date() - iDaysOld) Then
oFile.Delete(True)
End If
Next
If oSubFolder.Size = 0 Then oSubFolder.Delete(True)
Set oFSO = Nothing
Set oFolder = Nothing
Set oFileCollection = Nothing
Set oFile = Nothing
Next
마지막으로, 통과할 하위 디렉터리가 없는 경우 개체를 지우는 것을 잊지 마십시오.
Set oFSO = NothingSet oFolder = Nothing
Set oFileCollection = Nothing
Set oFile = Nothing
WScript.Quit
그것만큼 간단합니다. 위의 스크립트는 정리하고 싶은 모든 폴더를 정리합니다. 정기적으로 정리할 각 디렉터리에 대한 개별 스크립트를 작성하고 "sDirectoryPath"를 정리하려는 디렉터리로 설정한 다음 "C:\temp\" 또는 " c:\vbscripts\". 해당 스크립트를 설정했으면 해당 스크립트를 예약할 준비가 된 것입니다.
정리 스크립트 예약
정리 스크립트를 예약하려면 Windows 7에서 관리 도구로 이동하여 작업 스케줄러를 엽니다.
작업 메뉴 항목에서 기본 작업을 만듭니다.
그런 다음 해당 디렉터리를 정리할 때마다 실행되도록 되풀이 일정을 설정합니다. 제 경우에는 일반적으로 항상 로그인하여 컴퓨터에서 작업하는 일요일 정오에 정리 스크립트를 실행합니다. 스크립트는 백그라운드에서 실행됩니다.
개별 로그 또는 임시 디렉토리를 정리하기 위해 작성한 각 Windows 스크립트에 대해 예약된 작업을 설정해야 합니다.
작업 일정에서 만든 후 스크립트를 테스트하려면 "작업"을 클릭한 다음 "실행"을 클릭하십시오.
로그나 임시 폴더에서 며칠(또는 스크립트를 설정한 경우)보다 오래된 모든 파일이 자동으로 삭제되는 것을 볼 수 있습니다. 제 경우에는 Windows Temp 폴더를 매주 정리합니다. 이 스크립트를 실행한 후 폴더에 있는 약 45개의 파일이 하위 디렉토리의 모든 파일을 포함하여 약 20개 정도의 최신 파일로 잘리는 것을 보았습니다.
컴퓨터를 유지 관리하는 것은 정말 힘든 일입니다. 시스템과 모든 종류의 응용 프로그램이 지속적으로 로그 파일에 기록하거나 Windows 임시 폴더에 정크 임시 파일을 구축하는 경우 그 작업은 더욱 어려워질 수 있습니다. 이 스크립트는 실행할 때마다 새 로그 파일을 생성하는 서버에서 배치 작업이나 스크립트를 정기적으로 실행하는 IT 기술자에게 특히 유용합니다. 가장 오래된 로그 파일을 정기적으로 정리하는 Windows 스크립트를 실행하여 위와 같은 WSF 파일을 작성하여 해당 로그 디렉터리를 깔끔하고 깨끗하게 유지할 수 있습니다. 그렇지 않습니다.
그러한 스크립트에 대한 몇 가지 창의적인 용도를 생각할 수 있습니까? 임시 폴더와 로그 파일을 수동으로 청소합니까? 이와 같은 스크립트로 작업을 저장할 수 있습니까? 사용해 보고 아래 댓글 섹션에서 생각과 피드백을 공유하세요!
이미지 제공:Shutterstock을 통한 정크 야드의 크레인