Как сделать разрешения на копирование VBScript вместе с файлами

Это все в Windows XP с использованием VBScript.

У меня есть каталог с несколькими файлами внутри. Файлы имеют различные наборы разрешений. Мне нужно иметь возможность копировать файлы в новый каталог, сохраняя разрешения. Использование сценария под копией работает нормально, но разрешения перезаписываются новой родительской папкой.

Я знаю о xcopy, но не знаю, как заставить его работать в скрипте. Использование robocopy является небольшой возможностью, но его следует избегать, если это вообще возможно. О других утилитах не может быть и речи из-за сетевых ограничений.

Любая помощь приветствуется.

Dim CopyFromPath, CopyToPath  
Const WINDOW_HANDLE = 0 
Const NO_OPTIONS = 0 
Const OverwriteExisting = TRUE 

Set objShell = CreateObject("Shell.Application")  
Set objFolder = objShell.BrowseForFolder(WINDOW_HANDLE,"Select folder to copy:",NO_OPTIONS,ssfDRIVES) 

if (not objFolder is nothing) then 
    Set objFolderItem = objFolder.Self  
    CopyFromPath = objFolderItem.Path 
else  
    Set objShell = nothing 
    WScript.Quit(0) 
end if 

Set objFolder = objShell.BrowseForFolder(WINDOW_HANDLE, "Where should the folder be copied to?:", NO_OPTIONS, ssfDRIVES)  
if (not objFolder is nothing) then 
    Set objFolderItem = objFolder.Self  
    CopyToPath = objFolderItem.Path 
else  
    Set objShell = nothing 
    WScript.Quit(0) 
end if 

Set objFolder = nothing 
Set objFolderItem = nothing 
Set objShell = nothing 

Set objFSO = CreateObject("Scripting.FileSystemObject") 
objFSO.CopyFile CopyFromPath & "\*.*", CopyToPath & "\", OverwriteExisting 
msgbox "The folder has now been copied to " & CopyToPath 

person Angus Young    schedule 22.09.2011    source источник


Ответы (1)


xcopy — хорошая идея для этого.
Пример того, как заставить это работать в vbscript.

Set oWSHShell = CreateObject("WScript.Shell")
oWSHShell.Exec "xcopy C:\source C:\destination /O /X /H /K /Y"
Set oWSHShell = Nothing
person Kul-Tigin    schedule 22.09.2011