J'ai créé des dossiers en utilisant mon VBScript. quand je donne un chemin de dossier, le script ne crée que le dernier dossier. Si l'avant-dernier dossier n'existe pas, il échouera ... J'ai besoin d'un code vbscript pour créer l'intégralité de la structure de dossiers en une seule fois. comme mkdir -p sous unix
Vous pouvez utiliser cette fonction:
Const PATH = "X:\folder0\folder1\folder2"
Set fso = CreateObject("Scripting.FileSystemObject")
BuildFullPath PATH
Sub BuildFullPath(ByVal FullPath)
If Not fso.FolderExists(FullPath) Then
BuildFullPath fso.GetParentFolderName(FullPath)
fso.CreateFolder FullPath
End If
End Sub
Ou appelez simplement la commande mkdir à partir de votre script:
Set objShell = CreateObject("Wscript.Shell")
objShell.Run "cmd /c mkdir X:\folder1\folder2\folder3"
Vous devez fractionner le chemin complet et créer chaque dossier. Exemple de fonction:
Function CreateFolderRecursive(FullPath)
Dim arr, dir, path
Dim oFs
Set oFs = WScript.CreateObject("Scripting.FileSystemObject")
arr = split(FullPath, "\")
path = ""
For Each dir In arr
If path <> "" Then path = path & "\"
path = path & dir
If oFs.FolderExists(path) = False Then oFs.CreateFolder(path)
Next
End Function
Tard au spectacle, mais l'objet Shell.Application fonctionne pour moi sous XP, comme suit ...
with CreateObject("Shell.Application")
set oFolder = .NameSpace("C:\")
if (not oFolder is nothing) then oFolder.NewFolder("a\b\c\d")
end with
Ne pas être en désaccord avec d’autres réponses, mais vérifier l’existence de chaque dossier est également une bonne idée. Ainsi, cela ne génère pas une erreur lorsque vous essayez de créer un dossier qui existe déjà.
Sub ensureFolderExists(strFldrPath)
If Not FSO.FolderExists(strFldrPath) AND strFldrPath <> "" Then
ensureFolderExists(FSO.GetParentFolderName(strFldrPath))
FSO.CreateFolder strFldrPath
End If
End Sub