Jag behöver skriva ett cmd-script i Windows som skall rensa upp en katalog. Scriptet skall radera allt innehåll i en katalog som är äldre än det angivna antalet dagar.
Hur gör jag det? Hade jag haft tillgång till något Unix-shell eller kunnat skriva ett program i något lämpligt språk så hade det inte varit något problem, men nu är allt jag har Windows cmd.exe och den lämnar lite i övrigt att önska...
I Unix hade jag använt find med mtime-testswitchen och exec-actionswitchen för att köra rm-kommandot, men hur gör jag i Windows?
Och nej, jag kan inte installera Microsofts Unix Services, Cygwin eller något annat.
Kopiera följande text till en fil vid namn "deleteold.vbs". Spara filen i någon lämplig katalog.
Set objArgs = WScript.Arguments
FolderName =objArgs(0)
Days=objArgs(1)
set fso = createobject("scripting.filesystemobject")
set folder = fso.getfolder(FolderName)
datetoday = now()
newdate = dateadd("d", Days*-1, datetoday)
set files = folder.files
for each file in files
if file.datelastmodified < newdate then
on error resume next
file.delete
end if
next
set files = nothing
För att exekvera skriptet:
cscript deleteold.vbs [sökväg] n
deleteold.vbs - sparar du inte filen i någon av systemkatalogerna får du även peta in sökväg först (C:\Rikards_fjukfil\deleteold.vbs)
[sökväg] = Katalogen där du vill rensa upp lite. n är lämpligtvis antal dagar. ;)
Exempel:
cscript delteold.vbs C:\fjukloggar 4
Exemplet rensar bort alla filer som är äldre än 4 dagar ur katalogen C:\fjukloggar.