VB Script löscht Dateien Dateimaske fehlt noch
Hallo!
Ich habe dieses VBS Script
und möchte zusätzlich das nur Dateien gelöscht werden die die Endung .bak oder .sav haben.
Kann mir da jemand auf die Sprünge helfen?
Danke und LG chris
SCRIPT:
Set myArguments = WScript.Arguments
If myArguments.Count <> 1 Then
call DisplayInfo
Wscript.Quit (1)
End if
Dim heute, olddate
heute = FormatDateTime(Date, 2)
olddate = DateAdd("d", -30, heute)
set objFS = CreateObject("Scripting.FilesystemObject")
set myFolder = objFS.GetFolder(myArguments(0))
set myFiles = myFolder.Files
for each myfile in myFiles
If myFile.DateCreated < olddate then
myFile.Delete
end if
next
Sub DisplayInfo
MsgBox "Usage: deleteoldfiles.vbs [FolderPath]", vbExclamation, "Missing Argument"
End Sub
Ich habe dieses VBS Script
und möchte zusätzlich das nur Dateien gelöscht werden die die Endung .bak oder .sav haben.
Kann mir da jemand auf die Sprünge helfen?
Danke und LG chris
SCRIPT:
Set myArguments = WScript.Arguments
If myArguments.Count <> 1 Then
call DisplayInfo
Wscript.Quit (1)
End if
Dim heute, olddate
heute = FormatDateTime(Date, 2)
olddate = DateAdd("d", -30, heute)
set objFS = CreateObject("Scripting.FilesystemObject")
set myFolder = objFS.GetFolder(myArguments(0))
set myFiles = myFolder.Files
for each myfile in myFiles
If myFile.DateCreated < olddate then
myFile.Delete
end if
next
Sub DisplayInfo
MsgBox "Usage: deleteoldfiles.vbs [FolderPath]", vbExclamation, "Missing Argument"
End Sub
Please also mark the comments that contributed to the solution of the article
Content-ID: 81974
Url: https://administrator.de/contentid/81974
Printed on: December 12, 2024 at 02:12 o'clock
4 Comments
Latest comment
Hallo admin1987,
habs jetzt nicht ausprobiert, sollte aber schon funktionieren.
Gruß,
gemini
habs jetzt nicht ausprobiert, sollte aber schon funktionieren.
Set myArguments = WScript.Arguments
If myArguments.Count <> 1 Then
call DisplayInfo
Wscript.Quit (1)
End if
Dim heute, olddate, strExt, arExt
heute = FormatDateTime(Date, 2)
olddate = DateAdd("d", -30, heute)
strExt = "bak,sav"
set objFS = CreateObject("Scripting.FilesystemObject")
set myFolder = objFS.GetFolder(myArguments(0))
set myFiles = myFolder.Files
for each myfile in myFiles
arExt = Split(LCase(strExt), ",", -1, 1)
For i = 0 To UBound(arExt)
If LCase(Right(myfile, 3)) = arExt(i) Then
If myFile.DateCreated < olddate then
myFile.Delete
end if
End If
Next
next
Sub DisplayInfo
MsgBox "Usage: deleteoldfiles.vbs [FolderPath]", vbExclamation, "Missing Argument"
End Sub
Gruß,
gemini
Hallo Admin1987!
Versuch es damit:
Da in der Variablen "maske" nach einem Teilstring "#Typ#" gesucht wird, muss sowohl vor, als auch nach jedem Dateityp "#" verwendet werden.
Grüße
bastla
Versuch es damit:
Set myArguments = WScript.Arguments
If myArguments.Count <> 1 Then
call DisplayInfo
Wscript.Quit (1)
End if
Dim heute, olddate
heute = FormatDateTime(Date, 2)
olddate = DateAdd("d", -30, Date)
maske = "#bak#sav#"
set objFS = CreateObject("Scripting.FilesystemObject")
set myFolder = objFS.GetFolder(myArguments(0))
set myFiles = myFolder.Files
for each myfile in myFiles
If myFile.DateCreated < olddate then
If InStr(1, maske, "#" & objFS.GetExtensionName(myFile.Path) & "#", vbTextCompare) Then
myFile.Delete
End If
end if
next
Sub DisplayInfo
MsgBox "Usage: deleteoldfiles.vbs [FolderPath]", vbExclamation, "Missing Argument"
End Sub
Da in der Variablen "maske" nach einem Teilstring "#Typ#" gesucht wird, muss sowohl vor, als auch nach jedem Dateityp "#" verwendet werden.
Grüße
bastla
@gemini
Kurze Anmerkung: Das Array für die Extensions könntest Du eigentlich schon vor der Schleife und auch auf direktem Weg erzeugen (ob der Unterschied in der Laufzeit aber überhaupt messbar ist, wäre zu testen):
Grüße
bastla
Kurze Anmerkung: Das Array für die Extensions könntest Du eigentlich schon vor der Schleife und auch auf direktem Weg erzeugen (ob der Unterschied in der Laufzeit aber überhaupt messbar ist, wäre zu testen):
arExt = Array("bak","sav")
Grüße
bastla