1

さて、これが取り引きです。単純な 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"

どんな助けでも大歓迎です。

4

1 に答える 1

1

このように動作し、Windows7でテストされています

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
于 2012-07-16T21:46:20.103 に答える