ฉันใช้เวลามากมายในการช่วยเหลือเพื่อนและครอบครัวเกี่ยวกับปัญหาคอมพิวเตอร์ และต้องบอกว่าเหนือปัญหาอื่นๆ ทั้งหมด ปัญหาหนึ่งที่ฉันเห็นซ้ำแล้วซ้ำเล่าคือไฟล์ชั่วคราวและไฟล์บันทึกที่กินดิสก์ที่หดตัว ที่ว่างและทำให้ระบบล่มในที่สุด
โฟลเดอร์ไฟล์อินเทอร์เน็ตชั่วคราวเป็นผู้ร้ายทั่วไป แต่นั่นเป็นวิธีแก้ปัญหาที่ง่าย เพราะสิ่งที่คุณต้องทำคือตั้งค่าไฟล์เพื่อลบภายใน Internet Options ในแผงควบคุม อย่างไรก็ตาม แล้วโฟลเดอร์ temp ของ Windows ที่น่ารำคาญหรือไฟล์บันทึกของแอปพลิเคชันทั้งหมดที่สร้างด้วยขยะแบบสุ่มที่ไม่เคยถูกลบล่ะ ในตอนแรก สิ่งเหล่านี้ไม่ได้ทำให้เกิดปัญหามากนัก แต่เมื่อเวลาผ่านไป ขยะที่สะสมจะกลายเป็นไฟล์เก่ากองใหญ่ที่ไม่มีประโยชน์อะไรเลย
แอปพลิเคชั่นที่เขียนอย่างดีจะลบไฟล์บันทึกหรือไฟล์ชั่วคราวที่ไม่ต้องการแล้ว แต่มีโปรแกรมมากเกินไปที่ไม่สามารถล้างข้อมูลหลังจากตัวเองได้อย่างเหมาะสม - ทิ้งคุณไว้หลายปีด้วยคอมพิวเตอร์ที่ยุ่งมาก อย่างไรก็ตาม หากคุณรู้จักโฟลเดอร์บันทึกใดโดยเฉพาะ ไม่ว่าจะเป็นโฟลเดอร์ temp ของ Windows หรือโฟลเดอร์บันทึกของแอปพลิเคชัน เช่น โฟลเดอร์บันทึกการแจ้งเตือนของโปรแกรมป้องกันไวรัส หรืออะไรทำนองนั้น คุณสามารถใช้สคริปต์ Windows ต่อไปนี้เพื่อล้างไฟล์บันทึกที่เก่ากว่าเป็นประจำ กว่าสองสามวัน
ล้างไฟล์ชั่วคราวด้วย Windows Script
หากคุณเพิ่งเริ่มใช้ Windows Scripting โปรดดูบทแนะนำ WSH ที่ฉันเขียนไว้เมื่อสักครู่นี้ มีสิ่งดีๆ มากมายที่คุณสามารถทำได้ด้วย Windows Script เช่น การเปลี่ยนการตั้งค่าเครือข่ายหรือตั้งเวลาซอฟต์แวร์สแกนไวรัสหรือมัลแวร์โดยอัตโนมัติ
แน่นอน ถ้าคุณต้องการจัดกำหนดการรูทีนการล้างข้อมูลเพื่อให้ไฟล์บันทึกของแอปพลิเคชันหรือโฟลเดอร์ไฟล์ชั่วคราวอยู่ภายใต้การควบคุม Windows Script คือทางออกอย่างแน่นอน
การเขียนสคริปต์ Windows Cleanup
สคริปต์ 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 File System จากนั้นเชื่อมต่อกับไดเร็กทอรีที่คุณกำหนดไว้ด้วยตัวแปร "sDirectoryPath" การวนรอบแรกนี้จะผ่านแต่ละไฟล์ในไดเร็กทอรี ตรวจสอบวันที่แก้ไข และเปรียบเทียบกับอายุของไฟล์ที่คุณกำหนด หากเกิน 3 วัน ระบบจะทำการลบไฟล์นั้น
มันใช้งานได้ดีกับไฟล์ แต่แล้วไดเรกทอรีย่อยทั้งหมดในโฟลเดอร์อย่างไดเร็กทอรี temp ของ 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 ให้ไปที่เครื่องมือการดูแลระบบ และเปิด Task Scheduler
สร้างงานพื้นฐานจากรายการเมนูการดำเนินการ
จากนั้น ตั้งค่ากำหนดการที่เกิดซ้ำเพื่อเรียกใช้เมื่อใดก็ตามที่คุณต้องการล้างข้อมูลไดเรกทอรีนั้น ในกรณีของฉัน ฉันเรียกใช้สคริปต์การล้างข้อมูลตอนเที่ยงของวันอาทิตย์ ซึ่งโดยปกติแล้วฉันมักจะเข้าสู่ระบบและทำงานบนคอมพิวเตอร์ของฉัน สคริปต์จะทำงานในพื้นหลัง
คุณจะต้องตั้งค่างานตามกำหนดเวลาสำหรับแต่ละสคริปต์ของ windows ที่คุณเขียนเพื่อล้างข้อมูลบันทึกแต่ละรายการหรือไดเรกทอรีชั่วคราว
หากต้องการทดสอบสคริปต์ของคุณหลังจากที่คุณสร้างใน Task Schedule แล้ว ให้คลิกที่ "Action" แล้วคลิก "Run"
คุณควรเห็นไฟล์ทั้งหมดในบันทึกหรือโฟลเดอร์ชั่วคราวที่เก่ากว่าสองสามวัน (หรืออย่างไรก็ตาม คุณตั้งค่าสคริปต์ของคุณ) จะถูกลบโดยอัตโนมัติ ในกรณีของฉัน ฉันจะล้างโฟลเดอร์ Windows Temp ทุกสัปดาห์ หลังจากเรียกใช้สคริปต์นี้ ฉันเห็นไฟล์ประมาณ 45 ไฟล์ในโฟลเดอร์ที่ถูกตัดให้เหลือเพียงประมาณ 20 ไฟล์หรือมากกว่านั้นของไฟล์ล่าสุด ซึ่งรวมถึงไฟล์ทั้งหมดในไดเรกทอรีย่อยด้วย
การดูแลรักษาคอมพิวเตอร์อาจเป็นเรื่องยุ่งยาก และงานนั้นจะยิ่งยากขึ้นเมื่อคุณมีระบบและแอปพลิเคชันทุกประเภทที่เขียนบันทึกไฟล์หรือสร้างไฟล์ชั่วคราวในโฟลเดอร์ temp ของ Windows อย่างต่อเนื่อง สคริปต์นี้มีประโยชน์อย่างยิ่งสำหรับเทคโนโลยีไอทีที่อาจเรียกใช้งานแบตช์หรือสคริปต์บนเซิร์ฟเวอร์ที่สร้างไฟล์บันทึกใหม่ทุกครั้งที่มีการเรียกใช้ ด้วยการเรียกใช้ Windows Script ที่ล้างไฟล์บันทึกที่เก่าที่สุดเป็นประจำ คุณสามารถเขียนไฟล์ WSF ดังที่กล่าวไว้ข้างต้น ซึ่งจะทำให้ไดเร็กทอรีบันทึกนั้นดีและสะอาด - คุณสามารถเก็บประวัติของไฟล์บันทึกที่คุณต้องการ แต่ล้างไฟล์ที่เก่าจริงๆ ที่คุณทำไม่ได้
คุณนึกถึงการใช้งานเชิงสร้างสรรค์สำหรับสคริปต์ดังกล่าวหรือไม่? คุณล้างโฟลเดอร์ temp และล็อกไฟล์ด้วยตนเอง - และสคริปต์แบบนี้อาจช่วยคุณได้หรือไม่ ลองใช้และแบ่งปันความคิดและข้อเสนอแนะของคุณในส่วนความคิดเห็นด้านล่าง!
เครดิตรูปภาพ:ปั้นจั่นที่ Junk Yard ผ่าน Shutterstock