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

เก็บไฟล์บันทึกและไฟล์ชั่วคราวไว้ภายใต้การควบคุมด้วย Windows Script

ฉันใช้เวลามากมายในการช่วยเหลือเพื่อนและครอบครัวเกี่ยวกับปัญหาคอมพิวเตอร์ และต้องบอกว่าเหนือปัญหาอื่นๆ ทั้งหมด ปัญหาหนึ่งที่ฉันเห็นซ้ำแล้วซ้ำเล่าคือไฟล์ชั่วคราวและไฟล์บันทึกที่กินดิสก์ที่หดตัว ที่ว่างและทำให้ระบบล่มในที่สุด

โฟลเดอร์ไฟล์อินเทอร์เน็ตชั่วคราวเป็นผู้ร้ายทั่วไป แต่นั่นเป็นวิธีแก้ปัญหาที่ง่าย เพราะสิ่งที่คุณต้องทำคือตั้งค่าไฟล์เพื่อลบภายใน Internet Options ในแผงควบคุม อย่างไรก็ตาม แล้วโฟลเดอร์ temp ของ Windows ที่น่ารำคาญหรือไฟล์บันทึกของแอปพลิเคชันทั้งหมดที่สร้างด้วยขยะแบบสุ่มที่ไม่เคยถูกลบล่ะ ในตอนแรก สิ่งเหล่านี้ไม่ได้ทำให้เกิดปัญหามากนัก แต่เมื่อเวลาผ่านไป ขยะที่สะสมจะกลายเป็นไฟล์เก่ากองใหญ่ที่ไม่มีประโยชน์อะไรเลย

แอปพลิเคชั่นที่เขียนอย่างดีจะลบไฟล์บันทึกหรือไฟล์ชั่วคราวที่ไม่ต้องการแล้ว แต่มีโปรแกรมมากเกินไปที่ไม่สามารถล้างข้อมูลหลังจากตัวเองได้อย่างเหมาะสม - ทิ้งคุณไว้หลายปีด้วยคอมพิวเตอร์ที่ยุ่งมาก อย่างไรก็ตาม หากคุณรู้จักโฟลเดอร์บันทึกใดโดยเฉพาะ ไม่ว่าจะเป็นโฟลเดอร์ temp ของ Windows หรือโฟลเดอร์บันทึกของแอปพลิเคชัน เช่น โฟลเดอร์บันทึกการแจ้งเตือนของโปรแกรมป้องกันไวรัส หรืออะไรทำนองนั้น คุณสามารถใช้สคริปต์ Windows ต่อไปนี้เพื่อล้างไฟล์บันทึกที่เก่ากว่าเป็นประจำ กว่าสองสามวัน

ล้างไฟล์ชั่วคราวด้วย Windows Script

หากคุณเพิ่งเริ่มใช้ Windows Scripting โปรดดูบทแนะนำ WSH ที่ฉันเขียนไว้เมื่อสักครู่นี้ มีสิ่งดีๆ มากมายที่คุณสามารถทำได้ด้วย Windows Script เช่น การเปลี่ยนการตั้งค่าเครือข่ายหรือตั้งเวลาซอฟต์แวร์สแกนไวรัสหรือมัลแวร์โดยอัตโนมัติ

แน่นอน ถ้าคุณต้องการจัดกำหนดการรูทีนการล้างข้อมูลเพื่อให้ไฟล์บันทึกของแอปพลิเคชันหรือโฟลเดอร์ไฟล์ชั่วคราวอยู่ภายใต้การควบคุม Windows Script คือทางออกอย่างแน่นอน

การเขียนสคริปต์ Windows Cleanup

สคริปต์ Windows นี้จะเน้นที่ไดเร็กทอรีหนึ่งๆ และไปที่ไดเร็กทอรีทั้งหมดเพื่อค้นหาไฟล์ที่มีวันที่แก้ไขซึ่งเก่ากว่าสองสามวัน จากนั้นจะลบไฟล์เหล่านั้น จากนั้น สคริปต์จะผ่านไดเร็กทอรีย่อยใดๆ และทั้งหมด และทำการตรวจสอบและล้างข้อมูลแบบเดียวกัน ฟังดูซับซ้อน? มันไม่ใช่. ส่วนแรกของสคริปต์มีลักษณะดังนี้:

Option Explicit 

On 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 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

สุดท้าย อย่าลืมล้างวัตถุในกรณีที่ไม่มีไดเรกทอรีย่อยให้เข้าไป

 Set oFSO = Nothing

Set oFolder = Nothing

Set oFileCollection = Nothing

Set oFile = Nothing

WScript.Quit

มันง่ายอย่างนั้น สคริปต์ด้านบนจะล้างโฟลเดอร์ใดๆ ก็ตามที่คุณอาจต้องการล้าง เขียนสคริปต์แต่ละรายการสำหรับแต่ละไดเร็กทอรีที่คุณต้องการให้ล้างข้อมูลตามกำหนดเวลาปกติ ตั้งค่า "sDirectoryPath" เป็นไดเร็กทอรีที่คุณต้องการรักษาความสะอาด จากนั้นจัดเก็บไว้ในไดเร็กทอรีเช่น "C:\temp\" หรือ " c:\vbscripts\" เมื่อคุณตั้งค่าสคริปต์แล้ว คุณก็พร้อมที่จะกำหนดเวลาสคริปต์เหล่านั้น

การจัดกำหนดการสคริปต์การล้างข้อมูลของคุณ

หากต้องการกำหนดเวลาสคริปต์การล้างข้อมูล ใน Windows 7 ให้ไปที่เครื่องมือการดูแลระบบ และเปิด Task Scheduler

เก็บไฟล์บันทึกและไฟล์ชั่วคราวไว้ภายใต้การควบคุมด้วย Windows Script

สร้างงานพื้นฐานจากรายการเมนูการดำเนินการ

เก็บไฟล์บันทึกและไฟล์ชั่วคราวไว้ภายใต้การควบคุมด้วย Windows Script

จากนั้น ตั้งค่ากำหนดการที่เกิดซ้ำเพื่อเรียกใช้เมื่อใดก็ตามที่คุณต้องการล้างข้อมูลไดเรกทอรีนั้น ในกรณีของฉัน ฉันเรียกใช้สคริปต์การล้างข้อมูลตอนเที่ยงของวันอาทิตย์ ซึ่งโดยปกติแล้วฉันมักจะเข้าสู่ระบบและทำงานบนคอมพิวเตอร์ของฉัน สคริปต์จะทำงานในพื้นหลัง

เก็บไฟล์บันทึกและไฟล์ชั่วคราวไว้ภายใต้การควบคุมด้วย Windows Script

คุณจะต้องตั้งค่างานตามกำหนดเวลาสำหรับแต่ละสคริปต์ของ windows ที่คุณเขียนเพื่อล้างข้อมูลบันทึกแต่ละรายการหรือไดเรกทอรีชั่วคราว

เก็บไฟล์บันทึกและไฟล์ชั่วคราวไว้ภายใต้การควบคุมด้วย Windows Script

หากต้องการทดสอบสคริปต์ของคุณหลังจากที่คุณสร้างใน Task Schedule แล้ว ให้คลิกที่ "Action" แล้วคลิก "Run"

เก็บไฟล์บันทึกและไฟล์ชั่วคราวไว้ภายใต้การควบคุมด้วย Windows Script

คุณควรเห็นไฟล์ทั้งหมดในบันทึกหรือโฟลเดอร์ชั่วคราวที่เก่ากว่าสองสามวัน (หรืออย่างไรก็ตาม คุณตั้งค่าสคริปต์ของคุณ) จะถูกลบโดยอัตโนมัติ ในกรณีของฉัน ฉันจะล้างโฟลเดอร์ Windows Temp ทุกสัปดาห์ หลังจากเรียกใช้สคริปต์นี้ ฉันเห็นไฟล์ประมาณ 45 ไฟล์ในโฟลเดอร์ที่ถูกตัดให้เหลือเพียงประมาณ 20 ไฟล์หรือมากกว่านั้นของไฟล์ล่าสุด ซึ่งรวมถึงไฟล์ทั้งหมดในไดเรกทอรีย่อยด้วย

เก็บไฟล์บันทึกและไฟล์ชั่วคราวไว้ภายใต้การควบคุมด้วย Windows Script

การดูแลรักษาคอมพิวเตอร์อาจเป็นเรื่องยุ่งยาก และงานนั้นจะยิ่งยากขึ้นเมื่อคุณมีระบบและแอปพลิเคชันทุกประเภทที่เขียนบันทึกไฟล์หรือสร้างไฟล์ชั่วคราวในโฟลเดอร์ temp ของ Windows อย่างต่อเนื่อง สคริปต์นี้มีประโยชน์อย่างยิ่งสำหรับเทคโนโลยีไอทีที่อาจเรียกใช้งานแบตช์หรือสคริปต์บนเซิร์ฟเวอร์ที่สร้างไฟล์บันทึกใหม่ทุกครั้งที่มีการเรียกใช้ ด้วยการเรียกใช้ Windows Script ที่ล้างไฟล์บันทึกที่เก่าที่สุดเป็นประจำ คุณสามารถเขียนไฟล์ WSF ดังที่กล่าวไว้ข้างต้น ซึ่งจะทำให้ไดเร็กทอรีบันทึกนั้นดีและสะอาด - คุณสามารถเก็บประวัติของไฟล์บันทึกที่คุณต้องการ แต่ล้างไฟล์ที่เก่าจริงๆ ที่คุณทำไม่ได้

คุณนึกถึงการใช้งานเชิงสร้างสรรค์สำหรับสคริปต์ดังกล่าวหรือไม่? คุณล้างโฟลเดอร์ temp และล็อกไฟล์ด้วยตนเอง - และสคริปต์แบบนี้อาจช่วยคุณได้หรือไม่ ลองใช้และแบ่งปันความคิดและข้อเสนอแนะของคุณในส่วนความคิดเห็นด้านล่าง!

เครดิตรูปภาพ:ปั้นจั่นที่ Junk Yard ผ่าน Shutterstock