Houd Log & Temp Files onder controle met dit Windows Script
Ik heb veel tijd besteed aan het helpen van vrienden en familie met hun computerproblemen, en ik moet zeggen dat vooral andere problemen, het enige probleem dat ik zie steeds weer opnieuw opkomen, tijdelijke bestanden en logbestanden de krimpschijf opeten ruimte en uiteindelijk het systeem verzanden.
De tijdelijke map met internetbestanden is een veelvoorkomende boosdoener, maar dat is een eenvoudige oplossing, want alles wat u hoeft te doen is de bestanden instellen om te worden verwijderd in internetopties in het configuratiescherm. Maar hoe zit het met die vervelende Windows Temp-map of al die applicatie-logbestanden die zich blijven ontwikkelen met willekeurige rommel die nooit wordt verwijderd? In het begin veroorzaken die niet echt een probleem, maar na verloop van tijd verandert opgehoopte rommel in een enorme stapel oude bestanden die geen nuttig doel dienen.
Goed geschreven applicaties zullen log- of tijdelijke bestanden verwijderen die niet langer nodig zijn, maar te veel programma's die er zijn, verwijderen niet goed na zichzelf - waardoor je, na jaren, een erg rommelige computer hebt. Als u echter bepaalde logboekmappen kent, of het nu de mappenmap van Windows of de mappen van het toepassingslogboek is, zoals een map met antivirusmeldingen of iets dergelijks, kunt u het volgende Windows-script gebruiken om logboekbestanden die ouder zijn regelmatig op te schonen. dan een paar dagen.
Clean Temp-bestanden met Windows Script
Als je nog niet bekend bent met Windows Scripting, bekijk dan snel de WSH-handleiding Beter dan een batch: een Windows Scripting Host-handleiding beter dan batch: een Windows Scripting Host-zelfstudie Meer lezen Ik schreef een tijdje terug. Er zijn veel coole dingen die je met Windows Script kunt doen, zoals het wijzigen van netwerkinstellingen Een Windows-script schrijven om netwerkinstellingen te wijzigen On the Fly Een Windows-script schrijven om netwerkinstellingen te wijzigen On the Fly In veel kantoren of werkomgevingen , mogelijk moet u uw netwerkinstellingen opnieuw definiëren om verbinding te maken met verschillende netwerken. Ik vond mezelf vaak genoeg in deze situatie en werd het lezen van de antivirus- of malwaresoftware te moe. 5 manieren om je computer op te ruimen met een geautomatiseerd script [Windows] 5 manieren om je computer op te ruimen Met een geautomatiseerd script [Windows] Computeronderhoud is niet echt iets dat de meeste mensen onthouden. Voor de algemene gebruiker is dat niet bepaald technisch onderlegd, wanneer een computer niet werkt, roepen ze om hulp of kopen ze gewoon een nieuwe ... Lees Meer .
Vanzelfsprekend is Windows Script zeker de oplossing als u een opschoonroutine wilt plannen om die toepassingslogbestanden of tijdelijke bestandsmappen onder controle te houden..
Het schrijven van een Cleanup Windows Script
Dit Windows-script gaat zich concentreren op een bepaalde map en door die hele map gaan op zoek naar bestanden met een wijzigingsdatum die ouder is dan een paar dagen. Vervolgens worden die bestanden verwijderd. Vervolgens zal het script alle subdirectories doorlopen en dezelfde controle en opschoning uitvoeren. Klinkt dit ingewikkeld? Het is niet. Het eerste deel van het script ziet er als volgt uit:
Optie Expliciet bij fout Resume Next Dim oFSO, oFolder, sDirectoryPath Dim oFileCollection, oFile, sDir Dim iDaysOld iDaysOld = 3
In deze sectie worden de bestandssysteemvariabelen verklaard die u gaat gebruiken om toegang te krijgen tot de map en de bestanden die u wilt opruimen. Het instellen van “iDaysOld” variabele vertelt het script de leeftijd van de bestanden die u wilt behouden. In dit geval bewaar ik alle bestanden die nieuwer zijn dan 3 dagen oud.
Hierna volgt het ultra-eenvoudige opschoningsgedeelte.
'***** OPSLAG OUDE BESTANDEN UIT VAN LOG FOLDER ***** sDirectoryPath = "C: \ Users \ Owner \ AppData \ Local \ Temp \" oFSO = CreateObject instellen ("Scripting.FileSystemObject") oFolder = oFSO instellen .GetFolder (sDirectoryPath) Set oFileCollection = oFolder.Files Voor elke oFile in oFileCollection If oFile.DateLastModified < (Date() - iDaysOld) Then oFile.Delete(True) End If Next
Het bovenstaande gedeelte maakt verbinding met het Windows-bestandssysteem en maakt vervolgens verbinding met de map die u hebt gedefinieerd met de “sDirectoryPath” variabel. Deze eerste lus doorloopt elk afzonderlijk bestand in de map, controleert de gewijzigde datum en vergelijkt deze met de leeftijd van het bestand dat u hebt gedefinieerd. Als het ouder is dan 3 dagen, voert het een verwijderingsbewerking uit voor dat bestand.
Dit werkt prima op bestanden, maar hoe zit het met alle submappen in mappen zoals de Windows temp-directory? Dit volgende gedeelte van het script zal vervolgens alle submappen doorlopen en dezelfde bestandsbewerkingen uitvoeren op de bestanden daarbinnen.
Voor elke 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 Voor elke 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
Vergeet ten slotte niet om de objecten op te ruimen in het geval dat er geen submappen waren om doorheen te gaan.
Set oFSO = Nothing Set oFolder = Nothing Set oFileCollection = Nothing Set oFile = Niets WScript.Quit
Zo simpel is het. Het bovenstaande script zal elke map opschonen die je misschien wilt opruimen. Schrijf een afzonderlijk script voor elke map die u op gezette tijden wilt opruimen, stel de “sDirectoryPath” naar de map die u schoon wilt houden en sla deze vervolgens op in een map zoals “C: \ temp \” of “c: \ VBScripts \”. Zodra u die scripts hebt ingesteld, bent u klaar om die scripts in te roosteren.
Uw opruimingsscripts plannen
Als u uw opruimingsscript wilt plannen, gaat u in Windows 7 naar Systeembeheer en opent u de Taakplanner.
Maak een basistaak vanuit het menu-item Actie.
Stel vervolgens het terugkerende schema in dat moet worden uitgevoerd wanneer u die map wilt opruimen. In mijn geval voer ik mijn opruimingsscripts uit op zondagmiddag wanneer ik meestal altijd ingelogd ben en op mijn computer werk. De scripts worden gewoon op de achtergrond uitgevoerd.
U moet een geplande taak instellen voor elk Windows-script dat u hebt geschreven om de afzonderlijke logboek- of tijdelijke mappen op te schonen.
Als u uw script wilt testen nadat u in het takenschema hebt gemaakt, klikt u gewoon op “Actie” en dan “Rennen”.
U zou alle bestanden in dat logboek of de tijdelijke map moeten zien die ouder zijn dan een paar dagen (of hoe u uw script ook instelt) worden automatisch verwijderd. In mijn geval maak ik wekelijks mijn Windows Temp-map op. Na het uitvoeren van dit script zag ik dat ongeveer 45 bestanden in de map zijn weggehakt tot ongeveer 20 of zo van de nieuwste bestanden - inclusief alle bestanden in de submappen.
Het kan een hele klus zijn om computers te onderhouden - en die klus kan zelfs nog moeilijker worden als je het systeem en allerlei applicaties voortdurend aan het log schrijven hebt of junk temp-bestanden opbouwt in de Windows temp-map. Dit script is vooral handig voor IT-technici die regelmatig batchtaken of scripts op een server kunnen uitvoeren die allemaal nieuwe logbestanden maken telkens wanneer ze worden uitgevoerd. Door een Windows Script uit te voeren dat regelmatig de oudste logbestanden opruimt, kunt u WSF-bestanden zoals hierboven schrijven, die die logboekdirectory's mooi en schoon houden - u kunt een geschiedenis van logbestanden bijhouden die u wilt, maar de echt oude opruimen dat doe je niet.
Kun je een aantal creatieve toepassingen voor zo'n script bedenken? Maakt u tijdelijke mappen en logboekbestanden handmatig schoon - en zou een script als dit u kunnen redden? Probeer het eens en deel uw mening en feedback in de opmerkingen hieronder!
Image Credit: Crane at Junk Yard via Shutterstock
Meer informatie over: Computeronderhoud, programmeren.