同步运行方法vbscript

时间:2013-02-14 10:04:46

标签: methods vbscript synchronize

我有问题。我需要在每个循环中将vbscript(一个Run方法,Delete one和moveFile one)中的一些同步命令抛出到我的循环中。我不知道我是怎么做的。

我的代码是:

Public Function UnificarCRIs(ByVal path, ByVal FICRIEC, ByVal sessio, ByVal CIBAA)
    Dim objFile, objCurrentFolder, filesys, origenFitxers
    Dim FileName, WshShell

    On error resume next

    Set filesys = CreateObject("Scripting.FileSystemObject")
    Set WshShell = WScript.CreateObject("WScript.Shell")
    Set objCurrentFolder = filesys.getFolder(path)

    For Each objFile In objCurrentFolder.Files
        FileName = objFile
        If (right(FileName, 4) = ".cri") Then
            If filesys.FileExists(path & FICRIEC & sessio) Then
                 'WshShell.Run ("copy " & path & FICRIEC & sessio & "+" & FileName & " " & path & FICRIEC & sessio & "_tmp")
                 WshShell.run ("cmd /K " & "copy /Y " & path & FICRIEC & sessio & "+" & FileName & " " & path & FICRIEC & sessio & "_tmp",8,TRUE)
                 Set WshShell = Nothing
                 filesys.DeleteFile path & FICRIEC & sessio
                'filesys.MoveFile path & FICRIEC & sessio & "_tmp", path & FICRIEC & sessio
            Else
                WshShell.run "cmd /K " & "copy /Y " & FileName & " " & path & FICRIEC & sessio,8,TRUE
                Set WshShell = Nothing
            End If     
        End If 
    Next

End Function

1 个答案:

答案 0 :(得分:0)

完全阅读docs for .Run 并反映bWaitOnReturn参数。

<强>道歉:

抱歉,我没有仔细阅读您的代码。 .Run应该等。但我发现你在

中使用全局On Error Resume Next和参数列表()
WshShell.run ("cmd /K " & "copy /Y " & path & FICRIEC & sessio & "+" & FileName & " " & path & FICRIEC & sessio & "_tmp",8,TRUE)

当你消除这些错误时会发生什么?你确定,你在第二次通过循环时有一个可用的WshShell吗?