Использование xcopy в VBS (с изюминкой)
Итак, вот в чем дело: я пытаюсь собрать скрипт, который будет выполнять простую xcopy. Проблема в том, что я хочу, чтобы пользователи могли просматривать исходную и целевую папки. У меня есть пара простых частей, но я не смог собрать их вместе, особенно пытаясь отличить источник от места назначения и пытаясь получить вывод из функции просмотра...
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, "Example", 1, "c:\Programs")
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, "Example", 1, "c:\Programs")
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "Xcopy ""objShell"" ""objShell"" /C /D /E /H /I /K /R /S /Y"
Любая помощь будет принята с благодарностью.
1 ответ
Решение
Как это будет работать, проверено на Windows 7
Set objShell = CreateObject("Shell.Application")
Set oFso = CreateObject("Scripting.FileSystemObject")
root = "c:\"
Set source = get_path(objShell.BrowseForFolder(0, "Source folder", 1, root))
Set target = get_path(objShell.BrowseForFolder(0, "Target folder", 1, root))
Set objShell = WScript.CreateObject("WScript.Shell")
command = "Xcopy """&source&""" """&target&""" /C /D /E /H /I /K /R /S /Y"
'wscript.echo command
objShell.Run command
function get_path(foldername)
Set oFolderItem = foldername.Items.Item
Set selected = oFso.GetFolder(oFolderItem.Path)
If selected.IsRootFolder Then
Set get_path = oFso.GetDrive(selected.Drive)
Else
Set get_path = oFso.GetFolder(oFolderItem.Path)
End If
end function