Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> การบำรุงรักษาคอมพิวเตอร์

ควบคุม Log และ Temp Files ให้อยู่ภายใต้การควบคุม ด้วย Windows Script นี้

ผมใช้เวลามากช่วยเพื่อนและครอบครัวกับปัญหาคอมพิวเตอร์ และผมต้องบอกว่า מעל לכלปัญหาอื่นๆ สิ่งที่ผมเห็นเกิดขึ้นซ้ำๆ คือ 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

ควบคุม Log และ Temp Files ให้อยู่ภายใต้การควบคุม ด้วย Windows Script นี้

สร้าง Basic Task จากเมนู Action

ควบคุม Log และ Temp Files ให้อยู่ภายใต้การควบคุม ด้วย Windows Script นี้

จากนั้นตั้ง recurring schedule ให้รันเมื่อคุณต้องการทำความสะอาด directory นั้น ในกรณีของผม ผมรัน cleanup scripts ตอนเที่ยงวันอาทิตย์ เมื่อผมมักล็อกอินและทำงานอยู่บนคอมพิวเตอร์ Scripts แค่รันในพื้นหลัง

ควบคุม Log และ Temp Files ให้อยู่ภายใต้การควบคุม ด้วย Windows Script นี้

คุณต้องตั้ง scheduled task สำหรับแต่ละ windows script ที่เขียนไว้ทำความสะอาด log หรือ temp directories แยกกัน

ควบคุม Log และ Temp Files ให้อยู่ภายใต้การควบคุม ด้วย Windows Script นี้

เพื่อทดสอบ script หลังสร้างใน Task Schedule แค่คลิก "Action" แล้ว "Run"

ควบคุม Log และ Temp Files ให้อยู่ภายใต้การควบคุม ด้วย Windows Script นี้

คุณควรเห็นไฟล์ทั้งหมดใน log หรือ temp folder ที่เก่ากว่าสักไม่กี่วัน (หรือตามที่ตั้งค่า script) ถูกลบอัตโนมัติ ในกรณีของผม ผมทำความสะอาด Windows Temp folder ทุกสัปดาห์ หลังรัน script นี้ ผมเห็นไฟล์ประมาณ 45 ไฟล์ในโฟลเดอร์ ลดเหลือแค่ 20 ไฟล์ล่าสุด - รวมไฟล์ใน subdirectories ด้วย

ควบคุม Log และ Temp Files ให้อยู่ภายใต้การควบคุม ด้วย Windows Script นี้

การดูแลคอมพิวเตอร์อาจเป็นอันตรุ่งเรา - และงานนั้นยิ่งยากขึ้นเมื่อระบบและแอปพลิเคชันต่างๆ เขียน 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