2013-06-04 21 views
10

Obecnie jest to mój skryptSprawdź, czy folder jest tam, jeśli nie tworzyć go na bieżącego użytkownika zalogowanego VBS

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

Co staram się zrobić, to chwycić bieżący użytkownik zalogowany, chcę to sprawdzić katalog D: \ "personsuser" \ Appdata \ Roaming \ Local, aby zobaczyć, czy tworzony jest folder "Lokalny", jeśli nie został utworzony, chcę go utworzyć za pomocą createobject w vbs. Powyższy skrypt z tego co wiem chwyta aktualnego zalogowanego użytkownika, jednak nie jestem pewien, jak użyć tej zmiennej do utworzenia folderu.

Wiem, że będzie musiał zawierać coś wzdłuż tych linii:

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

I lub coś wzdłuż tych linii:

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 

Dzięki z góry, nie bardzo zna VBS jednak, że jest tylko platforma, z której mogę operować w środowisku, w którym go używam.

+0

Podfolder 'Lokalny' w profilu użytkownika powinien zostać utworzony automatycznie. Jeśli tak nie jest, należy zbadać, co uniemożliwia jego utworzenie i naprawić. –

Odpowiedz

17
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 

Oto człowiek, to powinno działać idealnie, uważa Daniel.