it-swarm.com.de

Überprüfen Sie, ob der Ordner vorhanden ist, wenn Sie ihn nicht für den in VBS angemeldeten aktuellen Benutzer erstellen

Derzeit ist dies mein Skript

Set oWS = WScript.CreateObject("WScript.Shell")
' Get the %userprofile% in a variable, or else it won't be recognized
userProfile = oWS.ExpandEnvironmentStrings( "%userprofile%" )

Was ich versuche, ist den aktuell angemeldeten Benutzer zu greifen. Ich möchte das Verzeichnis D:\"Personsuser"\Appdata\Roaming\Local überprüfen, um zu sehen, ob der Ordner "Local" erstellt wird, falls er nicht erstellt wurde Ich möchte eines via createobject in vbs erstellen. Das obige Skript greift den aktuell angemeldeten Benutzer an, aber ich bin mir nicht sicher, wie ich mit dieser Variablen einen Ordner erstellen kann.

Ich weiß, dass ich etwas in diese Richtung integrieren muss:

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.CreateFolder("C:\FSO")

Und oder etwas in dieser Richtung:

Dim objNetwork
Dim userName
Dim FSO

Set FSO = CreateObject("Scripting.FileSystemObject")

Set objNetwork = CreateObject("WScript.Network")
userName = objNetwork.userName

If fso.driveExists("D:\" & userName & "\AppData\Local\") Then
    FSO.CreateDirectory ("D:\" & userName & "\AppData\Local\")
End If

Vielen Dank im Voraus, mit VBS nicht sehr vertraut, jedoch ist dies die einzige Plattform, mit der ich in der Umgebung arbeiten kann, in der ich es benutze.

13
user2281912
Set oWS = WScript.CreateObject("WScript.Shell")
' Get the %userprofile% in a variable, or else it won't be recognized
userProfile = oWS.ExpandEnvironmentStrings( "%userprofile%" )

Dim objNetwork
Dim userName
Dim FSO
Dim Folder

Set FSO = CreateObject("Scripting.FileSystemObject")

Set objNetwork = CreateObject("WScript.Network")
userName = objNetwork.userName

If NOT (FSO.FolderExists(userProfile + "\AppData\Roaming\Local")) Then
    ' Delete this if you don't want the MsgBox to show
    MsgBox("Local folder doesn't exists, creating...")
    splitString = Split(userProfile, "\")

    ' Create folder
    MsgBox("D:\" + splitString(2) + "\AppData\Roaming\Local")
    'FSO.CreateFolder(splitString(2) + "\AppData\Roaming\Local")
End If

Hier gehts Mann, das sollte perfekt funktionieren, grüße Daniel.

19
Daniel Holman

Hier ist ein Codeteil meines Dienstprogramms für FSO:

dim ffso

Function GetFSO
    if not IsValidObject(ffso) then set ffso = CreateObject("Scripting.FileSystemObject")
  Set GetFSO = ffso
End Function

sub SureDirectoryExists(ADir)
    if ADir="" then exit sub
    if not GetFSO().FolderExists(ADir) then
        SureDirectoryExists ffso.GetParentFolderName(ADir)
        ffso.CreateFolder ADir
    end if
end sub
1
Artem Popov