retrodude
Goto Top

Systemvariable in VBscript integrieren

Hallo. Ich möchte mit folgendem Script beim Login eines Users einen Ordner in seinem Profil löschen. Dies möchte ich mit der %Username% Variable im Dateipfad tun. Ich schaffe es nicht dieses Objekt in meinen Script zu integrieren. Kann mir da mal einer unter die Arme greifen? Danke!


set WshShell = WScript.CreateObject("WScript.Shell")
UserName = WshShell.ExpandEnvironmentStrings("%Username%")

Dim fso

Set fso = CreateObject("Scripting.FileSystemObject")


Delete C:\Documents and Settings\%Username%\Application Data\Programm\Ordner\Cache
Wscript.Quit

Sub Delete( Strfolder)
On Error Resume Next
Dim Folder
Set Folder = fso.GetFolder(StrFolder)

For Each SubFolder in Folder.SubFolders
Delete SubFolder
If Folder.Attributes And 1 Then
Folder.Attributes = Folder.Attributes - 1
end if
SubFolder.Delete
Next

For Each File in Folder.Files
If File.Attributes And 1 Then
File.Attributes = File.Attributes - 1
End If
File.Delete
Next
End Sub

Content-Key: 144185

Url: https://administrator.de/contentid/144185

Printed on: April 23, 2024 at 16:04 o'clock

Member: Karo
Karo Jun 04, 2010 at 14:36:19 (UTC)
Goto Top
statt "Delete .....'

FSO.DeleteFolder("C:\Documents and Settings\" & Username & "\Application Data\Programm\Ordner\Cache")

Karo
Member: bastla
bastla Jun 04, 2010 at 16:13:23 (UTC)
Goto Top
... und noch als Hinweis: Anstelle des Zusammensetzen des Pfades über %USERNAME% würde sich eigentlich %APPDATA% anbieten (oder zumindest %USERPROFILE%) ....

Eine Übersicht über die zur Verfügung stehenden Variablen lässt sich von der Kommandozeile mit dem Befehl "set" aufrufen.

Grüße
bastla
Member: RetroDude
RetroDude Jun 08, 2010 at 15:06:31 (UTC)
Goto Top
Hallo Zusammen

Habe es folgendermassen gemacht:

Set fso = CreateObject("Scripting.FileSystemObject")
strLeft = "C:\Documents and Settings\"
strRight = "\Application Data\Applikation\Cache"

Delete strLeft& UserName& strRight

Habe den String einfach geteilt und korrekt übergeben. Habt ihr noch Verbessrungsvorschläge? Die Setvariablen sind mir schon bekannt face-wink , wieso würdest Du das denn mit %Appdata% machen Bastla?

Danke und Gruss

retrodude
Member: bastla
bastla Jun 08, 2010 at 15:17:42 (UTC)
Goto Top
Hallo RetroDude!

Die Verwendung von Systemvariablen macht das Script flexibler (sollte so unter verschiedenen BS bzw Sprachen funktionieren):
Set ws = CreateObject("WScript.Shell")  
AppData = ws.ExpandEnvironmentStrings("%APPDATA%")  
Grüße
bastla
Member: RetroDude
RetroDude Jun 09, 2010 at 06:46:57 (UTC)
Goto Top
Hallo

Du meinst wohl, man hätte den String noch etwas einfacher gestalten können gell? Danke für den Input. Deine Antworten sind immer sehr kompetent und treffsicher.

Gruss
retrodude
Member: bastla
bastla Jun 09, 2010 at 08:23:21 (UTC)
Goto Top
Hallo RetroDude!
strLeft = "C:\Documents and Settings\"
Dieser Teil des Pfades könnte ja auch "C:\Dokumente und Einstellungen\" oder "C:\Users\" lauten - was Dein Script aber gar nicht wissen muss, wenn der (gesamte) Pfad vom System geliefert wird ...

Grüße
basla