VBS同步中心同步脱机文件

时间:2018-06-06 21:44:38

标签: vbscript center synchronisation

我正在尝试使用VBScript同步脱机文件。我编辑了下面的代码来同步三个路径:

Set wshShell = CreateObject( "WScript.Shell" )
strUserName = wshShell.ExpandEnvironmentStrings( "%USERNAME%" )

strPathProfile = "\\SRV01\Path1$\" & strUserName
strPathHome = "\\SRV01\Path2$\" & strUserName
strPathShared = "\\SRV01\Path3$"

    SynchronizeOfflineFiles strPathProfile
    SynchronizeOfflineFiles strPathShared
    SynchronizeOfflineFiles strPathHome

Sub SynchronizeOfflineFiles(strSyncPath)
Dim objShell
Dim objFolderPath
    Set objShell = CreateObject("shell.application")
    Set objFolderPath = objShell.NameSpace(strSyncPath)

    If (not objFolderPath is nothing) then
        objFolderPath.Synchronize

    End If

    Set objFolderPath = nothing
    Set objShell = nothing
End Sub

我唯一的问题是同步中心将逐个同步路径,因为其中两个会失败。顶部的路径(在本例中为strPathProfile)将成功。因此,如果我将订单更改为例如:

SynchronizeOfflineFiles strPathHome
SynchronizeOfflineFiles strPathShared
SynchronizeOfflineFiles strPathProfile

strPathHome会成功,其他两个会失败。

当我使用WScript.Sleep 5000命令时,像这样:

SynchronizeOfflineFiles strPathProfile
WScript.Sleep 30000
SynchronizeOfflineFiles strPathShared
WScript.Sleep 30000
SynchronizeOfflineFiles strPathHome

它将等待其他路径同步,但我必须设置时间。是否可以等到上一次同步完成?

我还收到错误:当其中一个共享处于脱机状态时,文件扩展名“.vbs”没有脚本引擎。我可以让脚本检查共享是否在线,如果没有跳到下一个?

1 个答案:

答案 0 :(得分:0)

您的问题是在第一个完成之前运行子SynchronizeOfflineFiles。然后,当它发生时,你有Set objFolderPath = nothing。

您可以在上一个完成后运行带有不同参数的sub,也可以使用differentobjFolderPath编写多个版本的SynchronizeOfflineFiles。