14634
Goto Top

LöschVBS mit ausnahme möglich?

Hallo, ich möchte alle Ordner im Verzeichnis c:\Documents and Settings löschen die über 30 Tage nicht mehr benutzt worden sind.
Dazu habe ich folgendes VBS Script::
Set myArguments = WScript.Arguments

If myArguments.Count <> 2 Then	
	call DisplayInfo
	Wscript.Quit (1)
End if

Dim heute, olddate
heute = FormatDateTime(Date, 2)
olddate = DateAdd("d","-" & myArguments(1), heute)  

set objFS = CreateObject("Scripting.FilesystemObject")  
set myFolder = objFS.GetFolder(myArguments(0))
set mySubfolders = myFolder.Subfolders

for each subfolder in mySubfolders
	If subfolder.DateCreated < olddate then
		subfolder.Delete
If instr(Pfad,"Administator") then flag=1  
	end if
next 

Sub DisplayInfo
	MsgBox "Usage: deleteoldfolders.vbs [FolderPath] [Anzahl Tage]", vbExclamation, "Missing Arguments"  
End Sub
ich will aber auch das der Ordner Administrator und All Usern nicht gelöscht werden, dazu brauche ich eine ausnahmegenehmigung.
Leider weiß ich nicht wie ich diese am besten in das Script implemtiere.

Kann hier jemand helfen?

Content-ID: 152383

Url: https://administrator.de/forum/loeschvbs-mit-ausnahme-moeglich-152383.html

Ausgedruckt am: 20.04.2025 um 21:04 Uhr

Berrnd
Berrnd 05.10.2010 um 14:14:43 Uhr
Goto Top
Hi,

...ja einfach den Namen des Ordner vor dem Löschen noch prüfen...
(siehe Zeile 17)
Set myArguments = WScript.Arguments

If myArguments.Count <> 2 Then	
	call DisplayInfo
	Wscript.Quit (1)
End if

Dim heute, olddate
heute = FormatDateTime(Date, 2)
olddate = DateAdd("d","-" & myArguments(1), heute)  

set objFS = CreateObject("Scripting.FilesystemObject")  
set myFolder = objFS.GetFolder(myArguments(0))
set mySubfolders = myFolder.Subfolders

for each subfolder in mySubfolders
	If (subfolder.DateCreated < olddate) And Not (subfolder.Name = "All Users" OR subfolder.Name = "Administrator") then  
		subfolder.Delete
next 

Sub DisplayInfo
	MsgBox "Usage: deleteoldfolders.vbs [FolderPath] [Anzahl Tage]", vbExclamation, "Missing Arguments"  
End Sub
Gruß
Bernd
bastla
bastla 05.10.2010 um 14:25:54 Uhr
Goto Top
... oder etwas flexibler (aber ungetestet):
Set myArguments = WScript.Arguments
Exceptions = "#All Users#Administrator#whoever#AndSoOn#"  

If myArguments.Count <> 2 Then	
	call DisplayInfo
	Wscript.Quit (1)
End if

Dim heute, olddate
heute = FormatDateTime(Date, 2)
olddate = DateAdd("d","-" & myArguments(1), heute)  

set objFS = CreateObject("Scripting.FilesystemObject")  
set myFolder = objFS.GetFolder(myArguments(0))
set mySubfolders = myFolder.Subfolders

for each subfolder in mySubfolders
	If (subfolder.DateCreated < olddate) Then If InStr(1, Exceptions, "#" & subfolder.Name & "#", vbTextCompare) = 0 Then subfolder.Delete  
next 

Sub DisplayInfo
	MsgBox "Usage: deleteoldfolders.vbs [FolderPath] [Anzahl Tage]", vbExclamation, "Missing Arguments"  
End Sub
Grüße
bastla
60730
60730 05.10.2010 um 15:52:10 Uhr
Goto Top
Moin,

die Frage kommt ja hin & wieder des öfteren vor und immer wieder gibts dann schlauberger, die darauf hinweisen, dass "Profile" etwas mehr sind, als die Daten, die unter dem betreffenden Username Ordner liegen und das der symphatische Marktführer aus Redmont eigens für diese Problematik ein Werkzeug gezimmert hat.

Dann bin ich heute mal wieder der Großvater....
ich will aber auch das der Ordner Administrator und All Usern
und warum ist das default Profile in dem Gedankengang unter die Räder gekommen?

Gruß
14634
14634 05.10.2010 um 16:28:22 Uhr
Goto Top
HAllo, danke für eure hilfe, also das Script läuft einwandfrei in meinem Testordner, wenn ich es aber unter c:\Documents and Settings ausführen will, sagt es leider "kein zugriff" obwohl ich admin bin face-confused
14634
14634 05.10.2010 um 16:33:48 Uhr
Goto Top
hallo, den default profile habe ich natürlich dazugeschrieben. Das war einach nur eine Info ob mehre gehen..
ich werde mir mal die msi anschauen, danke

edit: Delprof löscht mir auch den Administrator von Documents and Settings, das wollte ich eigentlich nicht