Как сделать разрешения на копирование VBScript вместе с файлами - PullRequest
0 голосов
/ 22 сентября 2011

Это все в 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 

1 Ответ

0 голосов
/ 23 сентября 2011

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

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