VBS - 每2分钟传输一次最旧的文件

时间:2016-02-21 14:03:34

标签: vbscript

我找到了一些相似的主题,但他们并没有解决我遇到的全部问题,首先,我在VBS方面完成了一些问题,所以我很抱歉,如果这样的话是一个简单的问题。

我需要构建一个vbscript,每2分钟将最旧的文件从文件夹A传输到B,这就是我想出的:

Dim colFiles 
Dim strStartFolder 
Dim strDestinationfolder 
Dim oOldestFile 
Dim oFile 
Dim oFSO 
strStartFolder = "C:\Users\lucas\Desktop\a\" 
strDestinationfolder = "C:\Users\lucas\Desktop\b\" 
I=0    
Do While I=0
Set oFSO = CreateObject("Scripting.FileSystemObject") 
Set colFiles = oFSO.GetFolder(strStartFolder).Files 
If colFiles.Count <= 1 Then 
WScript.Quit 
End If 
For Each oFile In colFiles 
   If Not IsObject(oOldestFile) Then 
       Set oOldestFile = oFile 
   Else 
       If oFile.DateLastModified < oOldestFile.DateLastModified Then 
           Set oOldestFile = oFile 
       End If 
   End If 
Next 
Do While i=0
oOldestFile.Move strDestinationfolder & "\" & oOldestFile.Name 
Wscript.Sleep (2000)
Loop

目前,vbscript只转发最旧的文件一次。

有人可以帮我这个吗?

谢谢!

编辑: 在Hackoo和GJKH提出的建议之后,脚本看起来像这样:

Option Explicit
Dim colFiles 
Dim strStartFolder 
Dim strDestinationfolder 
Dim oOldestFile 
Dim oFile 
Dim oFSO 
strStartFolder = "C:\Users\lucas\Desktop\a\" 
strDestinationfolder = "C:\Users\lucas\Desktop\b\"  
Do
Set oFSO = CreateObject("Scripting.FileSystemObject") 
Set colFiles = oFSO.GetFolder(strStartFolder).Files 
Wscript.echo colFiles.Count 


    For Each oFile In colFiles 
        If Not IsObject(oOldestFile) Then 
            Set oOldestFile = oFile 
        Else 
            If oFile.DateLastModified < oOldestFile.DateLastModified Then 
                Set oOldestFile = oFile 
            End If 
        End If 
    Next 
    oOldestFile.Move strDestinationfolder & "\" & oOldestFile.Name
   ' Pause 1 ' sleep for 2 minutes
 Set oFSO = nothing
 Set colFiles = nothing 
Loop
'****************************************************************
Sub Pause(min)
    wscript.sleep(min * 60 * 1000)
End Sub
'**************************************************************** 

他转移了第一个文件而不是循环(激活了ECHO),但他在第一个文件之后没有传输任何文件,有什么想法吗?

1 个答案:

答案 0 :(得分:0)

尝试这样:

Option Explicit
Dim colFiles 
Dim strStartFolder 
Dim strDestinationfolder 
Dim oOldestFile 
Dim oFile 
Dim oFSO 
strStartFolder = "C:\Users\lucas\Desktop\a\" 
strDestinationfolder = "C:\Users\lucas\Desktop\b\"  
Set oFSO = CreateObject("Scripting.FileSystemObject") 
Set colFiles = oFSO.GetFolder(strStartFolder).Files 
'Wscript.echo colFiles.Count
Do 
    'Wscript.echo colFiles.Count
    If colFiles.Count <= 1 Then 
    'Wscript.echo colFiles.Count
    WScript.Quit 
    End If 

    For Each oFile In colFiles 
        If Not IsObject(oOldestFile) Then 
            Set oOldestFile = oFile 
        Else 
            If oFile.DateLastModified < oOldestFile.DateLastModified Then 
                Set oOldestFile = oFile 
            End If 
        End If 
    Next 
    oOldestFile.Move strDestinationfolder & "\" & oOldestFile.Name 
    Pause 2 ' sleep for 2 minutes
Loop
'****************************************************************
Sub Pause(min)
    wscript.sleep(min * 60 * 1000)
End Sub
'****************************************************************