Kaip automatiškai ištrinti failus, senesnius nei N dienos, sistemoje 'Windows' -

How Delete Files Older Than N Days Automatically Windows Winhelponline

„Windows 10“ turi įmontuotas funkcijas, skirtas atlaisvinti vietos ištrinant senus failus iš % temp% katalogas ir Atsisiuntimai aplanką. „Windows 10“ nustatymuose yra parinktis („Saugykla“), kuri automatiškai išvalo laikinus failus jūsų programos nenaudoja, atsisiuntimų failai, kurie nebuvo modifikuoti per pastarąsias x dienas, arba failai, gulintys šiukšliadėžėje x dienas.



„Windows 10“ saugyklos nustatymų valymo parinktys



Be to, disko valymo įrankis išvalo failus % temp% katalogo, kurio nebuvo pasiekta paskutines 7 dienas .



Tačiau disko valymas ir Saugyklos nustatymai nukreipti tik į % temp% ir Atsisiuntimai aplankai. Jei norite ištrinti failus, senesnius nei tam tikrą dienų skaičių, aplanke „pasirinktinis“, pvz., Jūsų Dokumentai aplanką, turite naudoti vieną iš šių trijų būdų:

Vista Kaip automatiškai ištrinti failus, senesnius nei N dienos

Kai kurie iš toliau pateiktų metodų leidžia naudoti failų ypatybes „sukūrimo data“ arba „modifikavimo data“ kaip pagrindinę liniją, norint nustatyti „senesnius“ failus pagal jūsų būtinybę.

1 būdas. Ištrinkite senesnius nei „N“ failus failus naudodami „File Explorer“

Naudodami „Windows“ paiešką galite lengvai gauti failų sąrašą pagal pasirinktą dienų seką arba failus, senesnius nei tam tikra data.



  1. Atidarykite aplanką, kuriame norite ištrinti senesnius failus.
  2. Spustelėkite paieškos laukelį arba paspauskite klaviatūros mygtuką F3.
  3. Spustelėkite mygtuką Pakeisti datą ir pasirinkite vieną iš išskleidžiamųjų parinkčių, sakykite „Praėjusi savaitė“.
    ištrinti senesnius nei x dienų failus iš
  4. „Windows“ paieška akimirksniu filtruos rezultatus. Pasirinkite failus, kuriuos norite ištrinti, ir paspauskite klaviatūros klavišą Delete.

Svarbu: Pagal numatytuosius nustatymus „Windows“ paieška ieško failų dabartiniame aplanke IR visuose pakatalogiuose. Apriboti paieškas tik tik dabartiniame aplanke , spustelėkite įrankių juostos / juostelės mygtuką „Dabartinis aplankas“.

Išplėstinės paieškos užklausa: „Data“ operatoriai

Jei iš anksto nustatytos dienų sekos parinktys jums netinka, galite įvesti pasirinktinę paieškos užklausą. Paieškos laukelyje įveskite šiuos duomenis, jei norite filtruoti failus iš pasirinktinės dienų sekos:

data modifikuota: 2017-01-01 .. 2017-12-31

Tai randa failus, kurie buvo modifikuoti per minėtą dienų seką. Taip pat galite naudoti Sukūrimo data: data pasiekta: arba data: (ypač fotoaparato vaizdams) operatoriai. Prisimink tai data: operatorius naudoja fotoaparato įrašytus datos metaduomenis (EXIF).

SUSIJĘS: Vista Kaip ieškoti tarp dviejų datų sukurtų failų

Norėdami rasti failus, kurie nebuvo modifikuoti po 2017 m. Lapkričio 1 d., Naudokite mažiau nei ( < ) simbolis su modemifed: operatorius, kaip nurodyta toliau:

modifikuotas:<11/1/‎2017

ištrinti senesnius nei x dienų failus iš

Pasirinkite failus iš sąrašo ir juos ištrinkite.

Patarimas: Užuot rašę dienų seką rankiniu būdu, įveskite data pakeista: arba Sukūrimo data: arba data pasiekta: arba data: operatorių paieškos laukelyje ir leiskite „File Explorer“ parodyti jums datos parinkiklį. Tada iššokančiajame lange galite pasirinkti datą arba dienų seką. Norėdami nurodyti dienų seką, pasirinkite pirmąją datą ir nuvilkite žymeklį į atitinkamą lauką.

Jei norite automatiškai ištrinti senesnius failus, o ne kaskart atlikti paieškos užklausą, turite sukurti paketinį failą arba „PowerShell“.


2 metodas: ištrinkite failus, senesnius nei „N“ dienas, naudodami komandinę eilutę

The „ForFiles“ konsolės įrankis (sistemose „Windows 7“, „Windows 8“, „Windows 8.1“ ir „Windows 10“) parenka failą arba failų rinkinį ir vykdo komandą tame faile arba rinkinyje.

Forfiles Help - komandų eilutės jungikliai / P - nurodo kelią pradėti paiešką. Numatytasis aplankas yra dabartinis darbo katalogas (.). / S - nurodo failams grįžti į pakatalogius. Kaip „DIR / S“. / D - Pasirinkite failus su paskutinio pakeitimo data. Pavyzdžiui, -365 reiškia daugiau nei prieš metus, -30 reiškia prieš mėnesį. / C 'komanda' - nurodo komandą, kurią reikia atlikti kiekvienam failui. Komandų eilutės turėtų būti suvyniotos dvigubomis kabutėmis. Numatytoji komanda yra „cmd / c echo @file“. Komandų eilutėje galima naudoti šiuos kintamuosius: @file - grąžina failo pavadinimą. @fname - grąžina failo pavadinimą be plėtinio. @ext - pateikia tik failo plėtinį. @path - pateikia visą failo kelią. @relpath - pateikia santykinį failo kelią. @isdir - grąžina „TRUE“, jei failo tipas yra katalogas, ir „FALSE“ failams. @fsize - pateikia failo dydį baitais. @fdate - pateikia paskutinę failo modifikavimo datą. @ftime - pateikia paskutinį kartą pakeistą failo laiką.

Norėdami peržiūrėti visą komandų eilutės argumentų, kuriuos palaiko šis įrankis, sąrašą, įveskite FORFILIAI /? komandinėje eilutėje.

Norėdami rasti ir ištrinti failus, senesnius nei tam tikrą dienų skaičių, naudodami „ForFiles“, atidarykite komandų eilutės langą ir įveskite vieną iš šių komandų:

ForFiles / p 'D:  My Scripts' / s / d -30 / c 'cmd / c del @path'

arba

ForFiles / p 'D:  My Scripts' / s / d -30 / c 'cmd / c del @file'

ištrinti senesnius nei x dienų failus iš Windows forfiles.exe forfiles komandos

Pirmiau daroma prielaida, kad aplanko kelias yra D: Mano scenarijai ir norite ištrinti senesnius nei 30 dienų failus. Tinkinkite aplanko kelią ir dienų skaičių pagal savo poreikius.

Jei komanda bus sėkminga, nematysite išvesties pranešimo. Jei nė vienas failas neatitiks nurodytų kriterijų, pamatysite pranešimą KLAIDA: Nerasta failų pagal nurodytus paieškos kriterijus .

Papildomas patarimas: Prieš bandydami ištrinti failus, atlikite sausą paleidimą, norėdami patikrinti, kurie failai paveikti pagal nurodytus kriterijus, pakeiskite komandą su išmetė , kaip nurodyta žemiau:

ForFiles / p 'D:  My Scripts' / s / d -30 / c 'cmd / c echo @path'

arba

ForFiles / p 'D:  My Scripts' / s / d -30 / c 'cmd / c echo @file'

forfiles ištrinti senesnius failus x dienų aidas

Pasirinktinai galite sukurti paketinį failą naudodami aukščiau nurodytą komandą. Arba automatiškai paleisti komandą nustatytais intervalais naudojant užduočių planavimo priemonę.

Automatiškai paleiskite komandą naudodami užduočių planavimo priemonę

  1. Paleisti užduočių planavimo priemonę.
  2. „Task Scheduler“ spustelėkite „Task Scheduler Library“
  3. Dešinėje srityje spustelėkite nuorodą „Sukurti užduotį“.
  4. Dialogo lange „Kurti užduotį“ pasirinkite skirtuką „Bendra“.
  5. Paminėkite užduoties pavadinimą, sakykite „Ištrinti senesnius failus iš Mano dokumentų“
  6. Spustelėkite skirtuką Aktyvikliai ir spustelėkite Naujas.
  7. Išskleidžiamajame sąraše esančiame išskleidžiamajame sąrašo laukelyje „Pradėti užduotį“ pasirinkite „Pagal tvarkaraštį“.
  8. Galite pasirinkti atlikti užduotį kasdien, kas savaitę ar kas mėnesį. Jei pasirinksite kas savaitę, pasirinkite savaitės (-ių) dieną (-as), kai norite, kad užduotis būtų suaktyvinta.
  9. Baigę spustelėkite mygtuką Gerai.
  10. Spustelėkite skirtuką „Veiksmai“ ir spustelėkite mygtuką „Naujas ...“.
  11. Lange „Naujas veiksmas“ užpildykite:
    Veiksmas: paleiskite programą Programa / scenarijus: C:  Windows  System32  ForFiles.exe Pridėti argumentų (nebūtina): / p '% userprofile%  Documents' / s / d -30 / c 'cmd / c del @file'

    ištrinti senesnius nei x dienų failus iš Windows užduočių planavimo priemonės

  12. Spustelėkite Gerai.

Sukuriama nauja užduotis, kuri vykdoma ištrina failus iš jūsų Dokumentai aplankas, kuris nebuvo modifikuotas per pastarąsias 30 dienų.


3 metodas: ištrinkite senesnius nei N dienų failus naudodami scenarijų

„Spiceworks“ forumo vartotojai turi VBScripts, kurie gali rekursyviai ištrinti failus, senesnius nei N dienų, nurodytame aplanko kelyje. Čia yra paprastas scenarijus:

Klaidos atnaujinimo metu Kitas nustatymas oFileSys = WScript.CreateObject ('Scripting.FileSystemObject') sRoot = 'C:  Kelias į senus failus' 'Kelio šaknis ieškant failų šiandien = Data nMaxFileAge = 3' Senesni nei tai failai (dienomis) bus ištrinta DeleteFiles (sRoot) funkcija DeleteFiles (ByVal sFolder) Nustatykite oFolder = oFileSys.GetFolder (sFolder) Nustatykite aFiles = oFolder.Files Nustatykite aSubFolders = oFolder.SubFolders kiekvienam failui aplanke aFiles dFileCreated = FormatDateTime (file.DateCreat ) Jei DateDiff ('d', dFileCreated, šiandien)> nMaxFileAge Tada failas. Ištrinti (Tiesa) Pabaiga Jei Kitas kiekvienam aplankui, esančiam aSubFolders DeleteFiles (aplankas.Kelias) Kitas pabaigos funkcija

Šaltinis: Ištrinkite senus failus ir tuščius pakatalogius - scenarijų centras - „Spiceworks“

SVARBU! Aukščiau pateiktame scenarijuje atsižvelgiama į elementų savybę „Sukūrimo data“, o ne į „Paskutinio pakeitimo datą“. Jei norite ištrinti failus, kuriuose nebuvo modifikuotas per pastarąsias N dienas scenarijuje pakeiskite šią eilutę:

dFileCreated = FormatDateTime (file.DateCreated, '2')

į

dFileCreated = FormatDateTime (file.DateLastModified, '2')

Tai išvalo senesnius nei 3 dienų failus. Viskas, ką jums reikia padaryti, yra modifikuoti aplanko kelią ir maksimalų failo amžiaus parametrus, kaip reikalaujama scenarijuje, išsaugoti jį naudodami .vbs pratęsimas ir paleiskite jį. Atminkite, kad scenarijus veikia nurodytame aplanke ir pakatalogiuose rekursyviai.

Čia yra dar vienas scenarijus, kuris pašalina senesnius nei N dienų failus ir automatiškai rekursyviai išvalo tuščius pakatalogius. Pamatyti Ištrinkite senesnius nei maksimalaus amžiaus failus (dienomis) - „Script Center“ - „Spiceworks“

SUSIJĘS: Vista Kaip greitai rasti ir ištrinti tuščius aplankus


4 metodas: ištrinkite senesnius nei „n“ dienų failus naudodami „PowerShell“

Trečioji galimybė yra naudoti „PowerShell“, kuriame yra naudingas cmdletas seniems failams rasti ir ištrinti.

Paleiskite „PowerShell“ ( powershell.exe) ir įveskite šią komandą:

„Get-ChildItem -Path“ [aplanko_kelias] -Failas -Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AdDDays (-30))} | Pašalinti elementą -Force

Pavyzdys:

„Get-ChildItem -Path“ D:  Reports “-File -Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AdDDays (-30))} | Pašalinti elementą -Force

Norėdami naudoti kelius, kuriuose yra panašus į aplinkos kintamąjį % userprofile% dokumentai , naudokite žemiau esančią sintaksę:

„Get-ChildItem -Path“ $ env: userprofile  documents “-File -Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AdDDays (-30))} | Pašalinti elementą -Force

(Pastaba: Aplanko pavadinimas pavyzdyje yra jūsų vartotojo profilis Dokumentai aplanką. Atitinkamai pakeiskite aplanko pavadinimą ir kelią pagal savo poreikius.)

Kadangi mes naudojome -Failas parametras, jis veikia tik failams. Taigi poaplankių, kurie nebuvo parašyti per pastarąsias n dienas, negalima ištrinti.

Pirmiau pateiktą komandą sudaro trys dalys:

  1. The „Get-ChildItem“ cmdlet gauna failų sąrašą aplanke Dokumentai.
  2. Tada išvestis perduodama Kur-objektas cmdlet, kad būtų atliktas filtravimas, pasirinkdami tik tuos failus, kurie nebuvo modifikuoti paskutiniu metu x dienų skaičius (šiame pavyzdyje 30 dienų ).
  3. Galiausiai, mes pateikiame išvestį į Pašalinti daiktą cmdlet, kuris savo ruožtu ištrina tuos senesnius failus, kuriuos grąžino ankstesnės dvi cmdlet.

1 patarimas: išvardykite atitinkamus failus, jų neištrinkite?

Norėdami išvardyti atitinkamus failus ir aplankus jų neištrindami, meskite | Pašalinti daiktą perjungti.

„Get-ChildItem -Path“ [aplanko_kelias] -Failas -Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AdDDays (-30))}

2 patarimas: panaikinkite klaidas ištrinant elementus

Norėdami užkirsti kelią klaidos pranešimams (kai pasiekiate ar ištrinate elementus), kad jie nebūtų rodomi konsolėje, pridėkite -ErrorAction tyliai Tęskite parametras.

„Get-ChildItem -Path“ [aplanko_kelias] -Failas -Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AdDDays (-30))} | „Remove-Item -ErrorAction SilentlyContinue -Force“

Ištrinkite senus failus taip pat aplankai

Atminkite, kad pirmiau nurodytos komandos ištrina tik senus failus, bet ne poaplankius, kurie nebuvo parašyti paskutiniame x dienų. Norėdami pašalinti senus aplankus, meskite -Failas argumentą iš anksčiau paaiškintų komandų.

Pavyzdys:

„Get-ChildItem -Path“ $ env: userprofile  documents “-Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AdDDays (-30))} | Pašalinti elementą -Force

(Nuoroda: „Cmdlet“ „Get-ChildItem“ dokumentacija „Microsoft“ svetainėje)

Svarbu: The -Atsikartojimas parametras nurodo „PowerShell“ gauti rekursyvius failus (pakatalogiuose). Norėdami išvengti failų paieškos poaplankiuose, pašalinkite -Atsikartojimas parinktis, kad būtų apdorojamas tik dabartinis aplankas.


Viena nedidelė užklausa: jei jums patiko šis įrašas, prašau pasidalinti šiuo?

Viena „mažytė“ jūsų dalis labai padėtų plėtoti šį tinklaraštį. Keli puikūs pasiūlymai:
  • Prisek tai!
  • Pasidalinkite ja su savo mėgstamu tinklaraščiu + „Facebook“, „Reddit“
  • Čiupkite!
Taigi labai ačiū už palaikymą, mano skaitytojau. Tai užtruks ne daugiau kaip 10 sekundžių jūsų laiko. Bendrinimo mygtukai yra apačioje. :)