Určitě jste někdy potřebovaly odmazat z nějaké složky soubory starší než definované datum, například generované pdf, fotografie z kamerového systému, a nebo logy z web serveru. Tento šikovný script problém hravě vyřeší za Vás. Můžete ho pustit v plánovači a nechat ho běžet pravidelně.
V systémech windows jsou soubory *.vbs automaticky asociované s programem „vb script host“ který provádí vykonání.
- Proměnná pocetdnizpet nastavuje počet dnů od aktuálního data zpět, na těchto souborech se provádí mazání. Hodnotu si upravte podle svých potřeb.
- Proměnná cesta je umístění adresáře který se má dávkou procházet, pokud se jedná o síťový disk je potřeba jej mít persistentně mapovaný pod účtem pod kterým pouštíme dávku.
- Pokud logika nemůže soubor odmazat, například na něj nemá oprávnění, nebo je soubor chráněn proti přepsání či použit jiným procesem, tak jej přeskočí a pokračuje dále.
- Pokud by jste chtěly funkci integrovat tak má také návratovou hodnotu, a tou je počet odmazaných souborů. Může pak třeba poslat email s počtem smazaných souborů a údajem o volném místě před a po dokončení.
Option Explicit ' spouštějte jen na vlastni nebezpečí. dim pocetdnizpet : pocetdnizpet = Date() - 2 dim cesta : cesta = "W:\mujadresar\" ' Tenhle kousek kodu na danem umisteni smaze vsecky polozky v adresari a jeho podadresarich starsi daneho data. Function DirWalkEx(parmPath,dTwoWeeksAgo) Dim fso : Set fso = CreateObject("Scripting.FileSystemObject") Dim oSubFolder, oFolder, n dim pocetsmazanych On Error Resume Next 'kdyz nejde smazat dem dal Set oSubFolder = fso.getfolder(parmPath) if fso.FolderExists(parmPath) then For Each oFolder In oSubFolder.SubFolders If Err.Number <> 0 Then ' if we got an error, just skip this entry Err.Clear elseIf oFolder.DateCreated < dTwoWeeksAgo Then fso.DeleteFolder oFolder.Path, True pocetsmazanych=pocetsmazanych+1 End If Next else Wscript.Echo "Adresář nebyl nalezen" end if DirWalkEx=pocetsmazanych On Error Goto 0 ' navrat k normalnimu error handleru End Function call DirWalkEx(cesta,pocetdnizpet)
Ať slouží.