18. januar 2001 - 08:35Der er
5 kommentarer og 1 løsning
WSH - checke filer er mere end 14 dage, og slettes - hviket program.
Hej - Det er faktisk 2 spørgsmål. Det 1. er selve problemet. Jeg skal på serveren køre en check at på fællesdrevet må filerne ikke være mere end 14 dage gamle, og det havde jeg tænkt på at jeg ville lave i .WSH eller hedder det .WSF - hvis der var nogle der evt havde en start ide, som jeg kunne gå videre med, jeg kender intet til programering, så det må godt være udpenslet.
Og det andet spørgsmål, hvilket program skal jeg lave det i, en alm. editor som NoteTab, eller findes der et rigtigt program til at skrive de filer i...
Som man nok kan høre, så er det ikke meget jeg kender til programering....
Hvis du kender en som har abonnement på Alt om Data, kan du finde en artikel i nyeste nummer som omhandler emnet med at søge harddisken igennem efter bestemte filer. Artiklen er sidst i den nyeste eksklusiv udgave, som kun udkommer til abonnenter. Prøv at kigge lidt på det, det er ikke ret svært...
I VBScript har du muligheden for at bruge \"DateDiff\" funktionen til at teste netop det.
Her er et script der tager 2 paramtre: et foldernavn samt et antal dage (for hvor gamle filerne må være). De for gamle filer listes i logfil.txt.
mvh Anders
\' START chkdate.vbs \' \' chkdate.vbs: Checker filer i en folder der \' er ældre end et angivet antal dage. \' \' Scriptet tager to argumenter: \' Navn på folderen der skal checkes i, \' samt antal dage filerne må være \' før de bliver listet. \' \' De filer der er for gamle skrives i \' filen \"logfil.txt\". \' Dim file, dFile Dim folder, sFolder Dim nDays Dim logfile, fso, oArgs Const ForAppending = 8
\' Parametrene læses. Set oArgs = Wscript.Arguments
\' Check at der er angivet netop to parametre. If oArgs.Count <> 2 Then Wscript.Echo \"chkdate.vbs:\" Wscript.Echo \"\" Wscript.Echo \"cscript chkdate.vbs [folder] [antal dage]\" Wscript.Echo \"\" Wscript.Echo \"Begge parametre SKAL angives.\" Wscript.Quit 1 End If
\' Check at der er angivet et tal som anden \' parameter. If Not IsNumeric(oArgs(1)) Then Wscript.Echo \"FEJL: Parameteren \'\" & oArgs(1) & \"\' er ikke et tal.\" Wscript.Echo \" Angiv antal dage filerne må være.\" Wscript.Quit 1 End If
\' Læs de to parametre i korrekt format. sFolder = CStr(oArgs(0)) nDays = CInt(oArgs(1))
\' Check at der er angivet en eksisterende folder. Set fso = Wscript.CreateObject(\"Scripting.FileSystemObject\") If Not fso.FolderExists(sFolder) Then Wscript.Echo \"FEJL: Folderen \" & sFolder & \" eksisterer ikke.\" Wscript.Echo \" Angiv en eksisterende folder.\" Wscript.Quit 1 End If Set folder = fso.GetFolder(sFolder)
\' Åben logfilen resultatet appendes til Set logfile = fso.OpenTextFile(\"logfil.txt\", ForAppending, True) logfile.WriteLine \"LOGFIL.TXT\" logfile.WriteLine \"Check udført \" & Date & \". Filer ældre end \" & nDays & \" dage, i folderen \" & sFolder logfile.WriteLine \"------------------------------------------------------------------\"
\' Check af alle filer i folderen ift. den angivne periode. For Each file In folder.Files dFile=file.DateLastModified If DateDiff(\"d\", dFile, Now) >= nDays Then logfile.WriteLine file.Name & \" (\" & file.DateLastModified & \").\" End If Next
logfile.WriteLine \"\" Wscript.Echo \"Check er gennemført.\"
Lige en tilføjelse: Hvis du vil have scriptet til at virke rekursivt, kan du lægge \"For Each file ...\" løkken ned i en sub-funktion. Erstat løkken med en linie som f.eks:
FindOldFiles folder, nDays
Slet linien \"Dim file, dFile\" øverst i scriptet, og sæt så ind til sidst i filen:
Sub FindOldFiles(folder, days) Dim file, dFile, subfold \' Check af alle filer i folderen ift. den angivne periode. For Each file In folder.Files dFile=file.DateLastModified If DateDiff(\"d\", dFile, Now) >= days Then logfile.WriteLine file.Path & \" (\" & file.DateLastModified & \").\" End If Next For Each subfold In folder.SubFolders logfile.Writeline subfold.Path FindOldFiles subfold, days Next End Sub
Nu vil scriptet gennemløbe den angivne folder og alle underfoldere.
Det hele blev vist lidt rodet, det er samlet lidt hurtigt fra et par lignende scripts jeg havde liggende, men det skulle virke som ønsket.
Jeg har fundet et gammelt DOS program, som sammen med et andet DOS program kunne gøre dette, tak alligevel, afh får point...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.