2013-06-04 9 views
10

Attualmente questo è il mio scriptVerificare se la cartella è lì, se non crea sul dell'utente attualmente collegato VBS

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

Quello che sto cercando di fare è prendere l'utente corrente connesso, lo voglio per verificare la directory D: \ "personsuser" \ Appdata \ Roaming \ Local per vedere se viene creata la cartella "Local", se non è stata creata Voglio crearne una tramite createobject in vbs. Lo script sopra da quello che conosco cattura l'utente attualmente connesso, tuttavia non sono sicuro di come usare questa variabile per creare una cartella.

So che avrò a incorporare qualcosa in questo senso:

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

E o qualcosa in questo senso:

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 

Grazie in anticipo, non molto familiare con VBS tuttavia, che è il solo la piattaforma che posso operare nell'ambiente in cui la sto usando.

+0

La sottocartella 'Local' nel profilo utente deve essere creata automaticamente. Se non lo è, dovresti indagare su cosa impedisce la sua creazione e risolverlo. –

risposta

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 

Qui vai uomo, questo dovrebbe funzionare perfettamente, saluti Daniel.