ผมใช้เวลามากช่วยเพื่อนและครอบครัวกับปัญหาคอมพิวเตอร์ และผมต้องบอกว่า מעל לכלปัญหาอื่นๆ สิ่งที่ผมเห็นเกิดขึ้นซ้ำๆ คือ temp files และ log files กินพื้นที่ดิสก์จนหมด และสุดท้ายทำให้ระบบช้าลง
Temporary Internet files folder เป็นผู้กระทำโดยปกติ แต่มันมีวิธีแก้ง่าย เพราะคุณแค่ตั้งค่าให้ลบไฟล์ภายใน Internet Options ใน control panel แต่โฟลเดอร์ Windows temp ที่รบกวน หรือ log files ของแอปพลิเคชันที่สะสมขึ้นมาด้วยขยะสุ่มที่ไม่เคยถูกลบ? เริ่มต้นสิ่งเหล่านี้ไม่ก่อให้เกิดปัญหามาก แต่วางเวลาผ่านไป ขยะสะสมกลายเป็นกองไฟล์เก่าอย่างมากที่ไม่มีประโยชน์
แอปพลิเคชันที่เขียนดีจะลบ log หรือ temp files ที่ไม่จำเป็นแล้ว แตโปรแกรมมากเกินไปไม่ clean up หลังตัวเอง - ทิ้งคุณไว้ หลายปี มาคอมพิวเตอร์ที่สกปรกมาก อย่างไรก็ตาม หากคุณรู้จัก log folders ใดๆ - ไม่ว่าจะเป็น Windows temp folder หรือ application log folders เช่น โฟลเดอร์ log การแจ้งเตือนแอนตี้ไวรัส คุณใช้ Windows script ต่อไปนี้ เพื่อทำความสะอาด log files ที่เก่ากว่าสักไม่กี่วัน อย่างสม่ำเสมอ
ทำความสะอาด Temp Files ด้วย Windows Script
หากคุณใหม่กับ Windows Scripting ดู WSH tutorial ที่ผมเขียนไว้เร็วๆ นี้ มีสิ่งสนุกๆ หลายอย่างทำได้กับ Windows Script เช่น เปลี่ยน network settings หรือจัดตารางแอนตี้ไวรัสหรือมัลแวร์สแกนเนอร์อัตโนมัติ
ชัดเจน หากคุณต้องการจัดตาราง cleanup routine เพื่อให้ application log files หรือ temporary file folders อยู่ภายใต้การควบคุม Windows Script 肯定是 解决方案
เขียน Cleanup Windows Script
Windows script นี้จะเน้นที่ directory หนึ่ง และผ่าน directory นั้นทั้งหมด หาไฟล์ที่มี modification date เก่ากว่าสักไม่กี่วัน มันจะลบไฟล์เหล่านั้น จากนั้น script จะผ่าน subdirectories ทั้งหมด และทำการเช็คและ cleanup เหมือนกัน ดูซับซ้อน? มันไม่ได้ ส่วนแรกของ script 长这样:
Option Explicit On Error Resume Next Dim oFSO, oFolder, sDirectoryPath Dim oFileCollection, oFile, sDir Dim iDaysOld iDaysOld = 3
ส่วนนี้ประกาศ file system variables ที่คุณจะใช้เข้าถึง directory และไฟล์ที่ต้องการทำความสะอาด การตั้งค่า "iDaysOld" บอก script ว่าอายุของไฟล์ที่คุณต้องการเก็บคือเท่าไหร่ ในกรณีนี้ ผมเก็บไฟล์ที่ใหม่กว่า 3 วัน
ต่อมาเป็นส่วน cleanup ที่เรียบง่ายมาก
' ***** 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 File System และเชื่อมต่อกับ directory ที่คุณกำหนดด้วย variable "sDirectoryPath" loop แรกนี้ผ่านแต่ละไฟล์ใน directory เช็ค modified date และเปรียบเทียบกับอายุไฟล์ที่คุณกำหนด หากเก่ากว่า 3 วัน มันจะลบไฟล์นั้น
สิ่งนี้ทำงานได้ดีกับไฟล์ แต subdirectories ในโฟลเดอร์อย่าง Windows temp directory ล่ะ? ส่วนถัดไปของ script จะต่อ file ผ่าน subdirectories ทั้งหมด และทำ file operations เหมือนกันกับไฟล์ในนั้นด้วย
For Each oSubFolder In oSubFolders
sDirectoryPath = "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
สุดท้าย อย่าลืม clear objects ในกรณีที่ไม่มี subdirectories ให้ผ่าน
Set oFSO = Nothing Set oFolder = Nothing Set oFileCollection = Nothing Set oFile = Nothing WScript.Quit
ง่ายแค่นั้นเอง Script ข้างต้นจะทำความสะอาดโฟลเดอร์ไหนก็ได้ที่คุณอยากทำความสะอาด เขียน script แยกสำหรับแต่ละ directory ที่คุณต้องการเก็บให้สะอาดเป็นประจำ ตั้ง "sDirectoryPath" เป็น directory ที่ต้องการทำความสะอาด และเก็บไว้ใน directory อย่าง "C:\temp\" หรือ "c:\vbscripts\" เมื่อคุณมี scripts เหล่านี้พร้อม คุณพร้อมจัดตาราง scripts เหล่านั้น
จัดตาราง Cleanup Scripts ของคุณ
เพื่อจัดตาราง cleanup script ใน Windows 7 ไปที่ Administrative Tools และเปิด Task Scheduler
สร้าง Basic Task จากเมนู Action
จากนั้นตั้ง recurring schedule ให้รันเมื่อคุณต้องการทำความสะอาด directory นั้น ในกรณีของผม ผมรัน cleanup scripts ตอนเที่ยงวันอาทิตย์ เมื่อผมมักล็อกอินและทำงานอยู่บนคอมพิวเตอร์ Scripts แค่รันในพื้นหลัง
คุณต้องตั้ง scheduled task สำหรับแต่ละ windows script ที่เขียนไว้ทำความสะอาด log หรือ temp directories แยกกัน
เพื่อทดสอบ script หลังสร้างใน Task Schedule แค่คลิก "Action" แล้ว "Run"
คุณควรเห็นไฟล์ทั้งหมดใน log หรือ temp folder ที่เก่ากว่าสักไม่กี่วัน (หรือตามที่ตั้งค่า script) ถูกลบอัตโนมัติ ในกรณีของผม ผมทำความสะอาด Windows Temp folder ทุกสัปดาห์ หลังรัน script นี้ ผมเห็นไฟล์ประมาณ 45 ไฟล์ในโฟลเดอร์ ลดเหลือแค่ 20 ไฟล์ล่าสุด - รวมไฟล์ใน subdirectories ด้วย
การดูแลคอมพิวเตอร์อาจเป็นอันตรุ่งเรา - และงานนั้นยิ่งยากขึ้นเมื่อระบบและแอปพลิเคชันต่างๆ เขียน log files หรือสะสม junk temp files ใน Windows temp folder ตลอดเวลา Script นี้มีประโยชน์อย่างยิ่งสำหรับ IT techs ที่อาจรัน batch jobs หรือ scripts บน server เป็นประจำ ที่สร้าง log files ใหม่ทุกครั้งที่รัน โดยการรัน Windows Script ที่ทำความสะอาด log files เก่าอย่างสม่ำเสมอ คุณเขียน WSF files เหมือนด้านบน ที่จะทำให้ log directories สะอาด - คุณเก็บประวัติ log files ที่ต้องการ แตทำความสะอาดตัวที่เก่าจริงๆ ที่ไม่ต้องการ
คุณคิดไหมว่ามีการใช้งานสร้างสรรค์สำหรับ script แบบนี้ไหม? คุณทำความสะอาด temp folders และ log files ด้วยมือ - และ script แบบนี้อาจช่วยประหยัดงานได้ไหม? ลองทำดูและแชร์ความคิดและ feedback ในความคิดเห็นด้านล่าง!
Image Credit: Crane at Junk Yard via Shutterstock