webForumDet fria alternativet

Skapa ett Windows CMD-script som raderar filer utifrån ett visst tidsvilkor

Programmering

4 svar · 1 139 visningar · startad av sgtpepper

Medlem sedan apr. 20007 588 inlägg
Frågan#1

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.

Hilfe!!

Medlem sedan apr. 20007 588 inlägg
#2

Men kom igen nu, finns det ingen duktig Windows-kille här? Skriver ni aldrig script?

Medlem sedan dec. 199917 055 inlägg
#3

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.

Medlem sedan apr. 20007 588 inlägg
#4

Ah, briljant, ett VBS-script, det hade jag inte ens funderat på. Tackar så mycket!

Är det något särskilt som krävs av operativet, eller finns scripting-stödet alltid default i moderna Windows-installationer?

Medlem sedan dec. 199917 055 inlägg
#5

cscript är en del av operativet.

251 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)