Håll loggfiler och tempfiler under kontroll med detta Windows-skript

Håll loggfiler och tempfiler under kontroll med detta Windows-skript / Windows

Jag har spenderat mycket tid på att hjälpa vänner och familj med sina datorproblem, och jag måste säga att framför allt andra problem, är det en fråga som jag ser upp och om igen att tempfiler och loggfiler äter upp krympande skiva utrymme och så småningom bogging ner systemet.

Den temporära Internetfilsmappen är en vanlig synder, men det är en som har en lätt lösning, för allt du behöver göra är att ställa in filerna för att bli raderade inuti Internet-alternativ i kontrollpanelen. Men hur är det med den irriterande Windows temp-mappen eller alla de programloggfiler som fortsätter att bygga upp med slumpmässig skräp som aldrig blir raderad? Först orsakar de inte mycket av ett problem, men med tiden blir ackumulerad skräp till en massiv hög med gamla filer som inte tjänar något användbart syfte.

Välskrivna applikationer tar bort logg- eller tempfiler som inte längre behövs, men alltför många program där ute rensar inte efter sig själva - lämnar dig efter år med en väldigt rörig dator. Om du känner till några speciella loggmappar, oavsett om det är mapparna för Windows temp eller programloggar, som en mapp för antivirusmeddelanden eller något liknande, kan du använda följande Windows-skript för att regelbundet rensa de loggfiler som är äldre än några dagar.

Rensa tempfiler med Windows Script

Om du är ny på Windows Scripting, ta en snabb titt på WSH-handledningen Bättre än Batch: En Windows Scripting-värdstudie Bättre än Batch: En Windows Scripting Host-handledning Läs mer Jag skrev ett tag tillbaka. Det finns massor av coola saker som du kan göra med Windows Script, till exempel att ändra nätverksinställningar. Så här skriver du ett Windows-skript för att ändra nätverksinställningar på flyget. Så här skriver du ett Windows-skript för att ändra nätverksinställningar på flyget. I många kontor eller arbetsmiljöer , kan du behöva omdefiniera dina nätverksinställningar för att ansluta till olika nätverk. Jag befann mig i den här situationen ofta och blev så trött på att surfa till ... Läs mer eller automatiskt schemalägga ditt program för antivirus eller malware skanning 5 sätt att städa upp datorn med ett automatiskt skript [Windows] 5 sätt att städa upp datorn Med ett automatiserat skript [Windows] Datorunderhåll är inte precis något som de flesta människor kommer ihåg att göra. För den allmänna användaren som inte är precis tekniskt kunnig, när en dator inte fungerar, ber de antingen om hjälp eller helt enkelt köpa en ny ... Läs mer .

Självklart, om du vill schemalägga en rengöringsrutin för att hålla de programloggfiler eller tillfälliga filmappar under kontroll, är Windows Script definitivt lösningen.

Skriva ett Windows-skript

Detta Windows-skript kommer att fokusera på en viss katalog och gå igenom hela katalogen efter filer som har ett modifieringsdatum som är äldre än några dagar. Det tar sedan bort dessa filer. Då går skriptet igenom alla underkataloger och utför samma kontroll och rengöring. Ljud komplicerat? Det är inte. Den första delen av manuset ser så här ut:

Alternativ Explicit Error Error Fortsätt Nästa Dim OFSO, oFolder, sDirectoryPath Dim oFileCollection, oFile, sDir Dim iDaysOld iDaysOld = 3

Det här avsnittet deklarerar filsystemvariablerna som du ska använda för att komma åt katalogen och de filer som du vill städa upp. Ställa in “iDaysOld” variabel berättar skriptet åldern på de filer som du vill behålla. I det här fallet håller jag några filer som är nyare än 3 dagar gamla.

Nästa kommer den ultimata rengöringssektionen.

'***** RENGÖR UT GAMMALA FILER I LOGFOLDER ***** sDirectoryPath = "C: \ Användare \ Ägare \ AppData \ Local \ Temp \" Ange oFSO = CreateObject ("Scripting.FileSystemObject") Ange oFolder = oFSO .GetFolder (sDirectoryPath) Ange oFileCollection = oFolder.Files För varje oFile i oFileCollection Om oFile.DateLastModified < (Date() - iDaysOld) Then oFile.Delete(True) End If Next

Avsnittet ovan kopplas till Windows-filsystemet och kopplas sedan till den katalog du har definierat med “sDirectoryPath” variabel. Den här första slingan går igenom varje enskild fil i katalogen, kontrollerar det modifierade datumet och jämför det med åldern för den fil du definierade. Om det är äldre än 3 dagar utför det en radering på den filen.

Det här fungerar bra på filer, men hur är det med alla underkataloger i mappar som Windows-tempkatalogen? Den här nästa delen av skriptet kommer nästa fil genom alla underkataloger och utför samma filoperationer på filerna där också.

För varje oSubFolder I oSubFolders sDirectoryPath = "C: \ Användare \ Ägare \ AppData \ Local \ Temp \" & oSubFolder Ange oFSO = CreateObject ("Scripting.FileSystemObject") Ange oFolder = oFSO.GetFolder (sDirectoryPath) Ange oFileCollection = oFolder.Files För varje oFile i oFileCollection Om 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

Slutligen glöm inte att rensa objekten om det inte fanns några underkataloger att gå igenom.

 Ange oFSO = Ingenting Ange oFolder = Ingenting Ange oFileCollection = Inget Ställ oFile = Inget WScript.Quit

Så enkelt är det. Skriptet ovan kommer att städa upp någon mapp alls som du kanske vill rengöra. Skriv ett enskilt manus för varje katalog som du vill hålla dig renad på regelbundet schema, ställ in “sDirectoryPath” till katalogen du vill hålla ren, och lagra den i en katalog som “C: \ temp \” eller “c: \ VBScripts \”. När du har skrivit de här skripten är du redo att schemalägga de här skripten.

Schemalägga dina rengöringsskript

För att schemalägga ditt rengöringsskript, i Windows 7, gå till administrativa verktyg och öppna uppgiftsschemaläggaren.

Skapa en grundläggande uppgift från menyalternativet Åtgärd.

Sätt sedan upp det återkommande schemat för att köra när du vill städa upp den katalogen. I mitt fall kör jag mina rengöringsskript vid middagstid på söndag när jag vanligtvis alltid är inloggad och arbetar på min dator. Skripten körs bara i bakgrunden.

Du måste konfigurera en schemalagd uppgift för varje Windows-skript du har skrivit för att städa upp de enskilda logg- eller tempkatalogerna.

För att testa ditt skript efter att du har skapat i Task Schema, klicka bara på “Verkan” och då “Springa”.

Du ska se alla filer i den loggen eller temp-mappen som är äldre än några dagar (eller hur du ställer in ditt skript) blir raderad automatiskt. I mitt fall rensar jag upp min Windows Temp-mapp varje vecka. Efter att ha kört det här skriptet såg jag ca 45 filer i mappen hakas ner till ungefär 20 eller så av de senaste filerna - inklusive alla filer i underkatalogerna.

Det kan vara en verklig smärta att upprätthålla datorer - och det jobbet kan bli ännu svårare när du har systemet och alla typer av applikationer skriver hela tiden för att logga in eller bygga upp skräppostfiler i Windows temp-mappen. Detta skript är särskilt användbart för IT-tekniker som regelbundet kan köra batchjobb eller skript på en server som alla skapar nya loggfiler varje gång de körs. Genom att köra ett Windows-skript som regelbundet rensar upp de äldsta loggfilerna kan du skriva WSF-filer som ovan som kommer att behålla de här loggkatalogerna snygga och rena - du kan behålla en historia av loggfiler som du vill ha, men städa upp de riktigt gamla att du inte gör det.

Kan du tänka på några kreativa användningsområden för ett sådant skript? Rengör du tempmappar och loggfiler manuellt - och kan ett sådant skript spara dig? Ge det ett försök och dela dina tankar och feedback i kommentarfältet nedan!

Bildkredit: Kran på skräp via Shutterstock

Utforska mer om: Datorunderhåll, programmering.