Hold logg og Temp-filer under kontroll med dette Windows-skriptet

Hold logg og Temp-filer under kontroll med dette Windows-skriptet / Windows

Jeg har brukt mye tid på å hjelpe venner og familie med sine problemer med datamaskinen, og jeg må si at fremfor alt andre problemer, er det et problem som jeg ser opp igjen og igjen, at tempfiler og loggfiler spiser opp krympende disk plass og til slutt legger ned systemet.

Den midlertidige Internett-filmappen er en vanlig synder, men det er en som har en lett løsning, fordi alt du trenger å gjøre er å sette opp filene for å bli slettet inni Internett-alternativer i kontrollpanelet. Men, hva med den irriterende Windows-tempmappen, eller alle disse programloggfilene som fortsetter å bygge opp med tilfeldig søppel som aldri blir slettet? I begynnelsen forårsaker de ikke mye av et problem, men over tid blir akkumulert søppel til en massiv haug av gamle filer som ikke tjener noe nyttig formål.

Velskrevne programmer vil slette logg- eller tempfiler som ikke lenger er nødvendig, men for mange programmer der ute, rydder ikke opp etter seg selv - etterlater deg med en veldig rotete datamaskin etter år. Men hvis du vet om bestemte loggmapper - enten det er Windows-tempmappen eller applikasjonsloggmappene, som en mappe for antivirusvarsellogg eller noe slikt, kan du bruke følgende Windows-skript for regelmessig å rydde opp de loggfilene som er eldre enn noen få dager.

Rengjør Temp Files med Windows Script

Hvis du er ny i Windows Scripting, tar du en rask titt på WSH-veiledningen Better Than Batch: En veiledning for Windows Scripting Host Better Than Batch: En Windows Scripting Host Tutorial Les mer Jeg skrev en stund tilbake. Det er mange kule ting du kan gjøre med Windows Script, for eksempel å endre nettverksinnstillinger. Slik skriver du et Windows-skript for å endre nettverksinnstillinger på flyget. Slik skriver du et Windows-skript for å endre nettverksinnstillinger på flyet. I mange kontorer eller arbeidsmiljøer , må du kanskje omdefinere nettverksinnstillingene for å koble til forskjellige nettverk. Jeg fant meg selv i denne situasjonen ofte nok, og ble så lei av å surfe til ... Les mer eller automatisk planlegge din antivirus- eller skadelig programvare for skanning 5 måter å rydde opp på datamaskinen med et automatisert skript [Windows] 5 måter å rydde opp datamaskinen på Med et automatisert script [Windows] Vedlikehold av datamaskiner er ikke akkurat noe folk flest husker å gjøre. For den generelle brukeren som ikke er akkurat teknisk kunnskapsrik, når en datamaskin ikke fungerer, ber de enten for hjelp eller bare kjøpe en ny ... Les mer .

Åpenbart, hvis du vil planlegge en opprydningsrutine for å holde disse programloggfilene eller midlertidige filmapper under kontroll, er Windows Script definitivt løsningen.

Skriver et opprydding Windows-skript

Dette Windows-skriptet skal fokusere på en bestemt katalog, og gå gjennom hele katalogen på jakt etter filer som har en modifikasjonsdato som er eldre enn noen få dager. Det sletter deretter disse filene. Deretter går skriptet gjennom alle underkataloger og utfører samme sjekk og opprydding. Lyd komplisert? Det er ikke. Den første delen av skriptet ser slik ut:

Alternativ Eksplisitt Feil Fortsett Neste Dim oFSO, oFolder, sDirectoryPath Dim oFileCollection, oFile, sDir Dim iDaysOld iDaysOld = 3

Denne delen erklærer filsystemvariablene som du skal bruke for å få tilgang til katalogen og filene du vil rydde opp. Sette opp “iDaysOld” variabel forteller skriptet alderen på filene du vil beholde. I dette tilfellet holder jeg filer som er nyere enn 3 dager gamle.

Neste kommer den ultra enkle opprydningsdelen.

'***** Ryd ut gamle filer i loggfiler ***** sDirectoryPath = "C: \ Brukere \ Eier \ AppData \ Local \ Temp \" Angi oFSO = CreateObject ("Scripting.FileSystemObject") Angi oFolder = oFSO .GetFolder (sDirectoryPath) Sett oFileCollection = oFolder.Files For hver oFile i oFileCollection Hvis oFile.DateLastModified < (Date() - iDaysOld) Then oFile.Delete(True) End If Next

Avsnittet ovenfor kobler sammen med Windows-filsystemet, og kobler deretter til katalogen du har definert med “sDirectoryPath” variabel. Denne første sløyfen går gjennom hver enkelt fil i katalogen, kontrollerer modifisert dato og sammenligner den med alderen til filen du definerte. Hvis den er eldre enn 3 dager, utfører den en slettingshandling på den filen.

Dette fungerer bra på filer, men hva med alle underkataloger i mapper som Windows Temp-katalogen? Denne neste delen av skriptet vil neste fil gjennom alle underkataloger, og utføre de samme filoperasjonene på filene der inne også.

For hver oSubFolder I oSubFolders sDirectoryPath = "C: \ Brukere \ Eier \ AppData \ Local \ Temp \" & oSubFolder Angi oFSO = CreateObject ("Scripting.FileSystemObject") Angi oFolder = oFSO.GetFolder (sDirectoryPath) Angi oFileCollection = oFolder.Files For hver oFile i oFileCollection Hvis 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

Til slutt, ikke glem å fjerne objekter i tilfelle der det ikke var noen underkataloger å gå gjennom.

 Angi oFSO = Ingenting sett oFolder = Ingenting sett oFileCollection = Ingenting sett oFile = Ingenting WScript.Quit

Det er så enkelt. Skriptet ovenfor vil rydde opp en hvilken som helst mappe som du kanskje vil rengjøre. Skriv et individuelt skript for hver katalog som du vil holde oppryddet på en vanlig tidsplan, sett inn “sDirectoryPath” til katalogen du vil beholde ren, og lagre den i en katalog som “C: \ temp \” eller “c: \ VBScripts \”. Når du har skrevet opp disse skriptene, er du klar til å planlegge disse skriptene.

Planlegger oppryddingskriptene dine

For å planlegge oppryddingskriptet ditt, i Windows 7, gå til Administrative Tools og åpne oppgaveplanleggeren.

Opprett en grunnleggende oppgave fra handlingsmenyelementet.

Deretter skal du sette opp den gjeldende tidsplanen for å løpe når du vil rydde opp den katalogen. I mitt tilfelle kjører jeg opprydningsskriptene mine på søndag søndag når jeg vanligvis alltid logger inn og jobber på datamaskinen min. Skriptene kjører bare i bakgrunnen.

Du må konfigurere en planlagt oppgave for hvert Windows-skript du har skrevet for å rydde opp de enkelte logg- eller temp-katalogene.

For å teste skriptet ditt etter at du har opprettet i oppgaveskjemaet, klikker du bare på “Handling” og så “Løpe”.

Du bør se alle filene i den loggen eller tempmappen som er eldre enn noen få dager (eller men du setter opp skriptet) bli slettet automatisk. I mitt tilfelle rengjør jeg Windows Temp-mappen min hver uke. Etter å ha kjørt dette skriptet så jeg om lag 45 filer i mappen, hakkes ned til omtrent 20 eller så av de nyeste filene - inkludert alle filene i underkatalogene.

Det kan være en ekte smerte for å opprettholde datamaskiner - og den jobben kan bli enda vanskeligere når du har systemet og alle slags applikasjoner skriver hele tiden for å logge filer eller bygge opp søppelfart-filer i Windows-tempmappen. Dette skriptet er spesielt nyttig for IT-teknologier som regelmessig kan kjøre batchjobber eller -skript på en server som alle lager nye loggfiler hver gang de kjøres. Ved å kjøre et Windows-skript som regelmessig rydder opp de eldste loggfilene, kan du skrive WSF-filer som ovenfor som vil holde disse loggfilene rent og pent - du kan beholde en loggfillogg du vil ha, men rydde opp de virkelig gamle at du ikke gjør det.

Kan du tenke på noen kreative bruksområder for et slikt skript? Rengjør du tempmapper og loggfiler manuelt - og kan et skript som dette spare deg for å jobbe? Gi det en prøve, og del dine tanker og tilbakemeldinger i kommentarfeltet nedenfor!

Bildekreditt: Kran på søppelparken via Shutterstock

Utforsk mer om: Computer vedlikehold, programmering.