【问题标题】:VBscript Robocopy SyntaxVBscript Robocopy 语法
【发布时间】:2012-07-06 14:12:35
【问题描述】:

我认为 VBscript 中有关运行 robocopy 的语法错误存在问题。

以下是我现在用来尝试运行 robocopy 的代码 sn-p:

Dim Command2

sLocalDestinationPath = "C:\Script\files\outzips\"
sFinalDestinationPath = "C:\CopyTestFolder\"


Command2 = "Robocopy.exe " & sLocalDestinationPath & " " & sFinalDestinationPath 

问题是该命令不会产生任何错误,但它也不会将任何文件从本地路径复制到最终路径。从命令行执行时,它运行得非常好。任何帮助将不胜感激,因为这个简单的命令使我无法完成此脚本的其余部分。

我也让它回显命令,并且命令与我在命令行中输入的完全匹配。

谢谢,如果您需要更多解释,请告诉我。

【问题讨论】:

  • 试试这个链接ss64.com/nt/robocopy.html
  • 了解所有不同的命令很有用,但是当我直接在命令行中使用它时,我的命令已经运行了。所以我知道它有效。我只是不知道为什么从 vbs 调用时它没有

标签: vbscript robocopy


【解决方案1】:

你没有说你是如何试图“运行”Robocopy,但我认为它是通过WScript.Shell.Run()

我碰巧没有 Robocopy 方便,但我确实使用 Windows XCopy 编写了一个示例。或许您可以修改我的简单 XCopy 示例,以更深入地了解您在使用 Robocopy 时遇到的问题。

Option Explicit

' XCOPY doesn't Like trailing slashes in folder names
Const sLocalDestinationPath = "C:\Script\files\outzips"
Const sFinalDestinationPath = "C:\CopyTestFolder"

Dim Command2 : Command2 = _
    "XCOPY" _
    & " " & sLocalDestinationPath _
    & " " & sFinalDestinationPath _
    & " /E /I /Y" _
    & ""

Dim oSh : Set oSh = CreateObject("WScript.Shell")

WScript.Echo "Cmd: [" & Command2 & "]"

On Error Resume Next
Dim nRetVal : nRetval = oSh.Run(Command2, 0, True)

If Err Then
    WScript.Echo "An exception occurred:" _
           & vbNewLine & "Number: [" & Hex(Err.Number) & "]" _
           & vbNewLine & "Description: [" & Err.Description & "]" _
           & ""
Else
    If nRetVal Then
         WScript.Echo "Copy error: [" & nRetVal & "]"
    Else
         WScript.Echo "Copy succeeded."
    End If
End If

Set oSh = Nothing

' XCOPY options:
'
' /E    Copies directories and subdirectories, including empty ones.
'       Same as /S /E. May be used to modify /T.
'
' /I    If destination does not exist and copying more than one file,
'       assumes that destination must be a directory.
'
' /Y    Suppresses prompting to confirm you want to overwrite an
'       existing destination file.

' End

【讨论】:

  • 感谢您的帮助。我设法弄清楚我的问题,它是如此简单。我告诉我的 Run 运行 command1 而不是 command 2 ......这就是我只需复制和粘贴我已经编写的部分代码而无需仔细阅读它所得到的。因为我知道我的语法是正确的,所以我花了好几个小时来解决这个问题。
猜你喜欢
  • 2010-11-20
  • 1970-01-01
  • 2014-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多