2012-07-06 34 views
0

我遇到了一個問題,我覺得VBscript中有關運行robocopy的語法錯誤。VBscript Robocopy語法

以下是我現在用的嘗試ROBOCOPY運行的代碼片段:

Dim Command2 

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


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

的事情是,該命令不產生任何錯誤,但它也不會從複製任何文件到最終路徑的本地路徑。從命令行執行時它運行得非常好。任何幫助將不勝感激,因爲這個簡單的命令阻止我完成這個腳本的其餘部分。

我也有它迴應命令和命令完全匹配我放在命令行中。

謝謝你,如果你需要任何解釋,請讓我知道。

+0

嘗試此鏈接http://ss64.com/nt/robocopy.html – Amol 2012-07-06 14:20:52

+0

這是瞭解所有不同的命令是有用的,但是當我在命令行直接使用我的命令已經運行。所以我知道它的工作原理。我只是不知道爲什麼它不從vbs – parchambeau 2012-07-06 14:43:23

回答

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 
+0

打電話時感謝您的幫助。我設法弄清楚了我的問題,它非常簡單。我告訴我的Run運行command1而不是命令2 ....這就是我剛纔複製和粘貼的部分代碼,我已經寫過,但沒有經過它。因爲我知道我的語法正確,所以在這個問題上花了幾個小時試圖找出答案。 – parchambeau 2012-07-07 04:07:51