Синтаксис VBscript Robocopy

У меня проблема с синтаксической ошибкой в ​​VBscript, связанной с запуском robocopy.

Ниже приведен фрагмент кода, который я сейчас использую, чтобы попытаться запустить robocopy:

Dim Command2

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


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

Дело в том, что команда не выдает ошибок, но и не копирует файлы с локального пути на конечный. Он отлично работает при запуске из командной строки. Любая помощь будет принята с благодарностью, потому что эта простая команда не позволяет мне завершить оставшуюся часть этого скрипта.

У меня также есть повторение команды, и команда точно соответствует тому, что я ввел в командную строку.

Спасибо, если вам нужны дополнительные объяснения, просто дайте мне знать.


person parchambeau    schedule 06.07.2012    source источник
comment
Попробуйте эту ссылку ss64.com/nt/robocopy.html   -  person 4m01    schedule 06.07.2012
comment
Было полезно знать обо всех различных командах, но моя команда уже выполняется, когда я использую ее непосредственно в командной строке. Так что я знаю, что это работает. Я просто не знаю почему не при вызове из vbs   -  person parchambeau    schedule 06.07.2012


Ответы (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
person DavidRR    schedule 06.07.2012
comment
Спасибо за помощь. Мне удалось разобраться в своей проблеме, это было до смешного просто. Я говорил своему Run запустить команду 1 вместо команды 2 .... это то, что я получаю, просто копируя и вставляя части кода, которые я уже написал, не повторяя его. Я часами пытался решить эту проблему, потому что знал, что у меня правильный синтаксис. - person parchambeau; 07.07.2012