2017-09-12 43 views
1

我有像下面這樣的代碼,用於從.txt獲取數據並每15分鐘循環一次。我只是試驗了9000的值來縮短測試時間。如果成功,我會設置90分鐘15分鐘。如何每15分鐘循環一次並從.txt獲取數據?

Dim fso, path, file, recentDate, recentFile, objFSO, objOutputFile, objTextFile, strText, i 

i = 0 
Do While i = 0 
    Set fso = CreateObject("Scripting.FileSystemObject") 
    Set recentFile = Nothing 
    For Each file In fso.GetFolder("C:\Users\ID\Documents\DATA-DTL\vbs\").Files 
     If (recentFile is Nothing) Then 
      Set recentFile = file 
     ElseIf (file.DateLastModified > recentFile.DateLastModified) Then 
      Set recentFile = file 
     End If 
    Next 

    If recentFile is Nothing Then 
     WScript.Echo "no recent Files" 
    Else 
     'WScript.Echo "Recent file is " & recentFile.Name & " " & recentFile.DateLastModified 
     Const ForReading = 1 
     Set objFSO = CreateObject("Scripting.FileSystemObject") 

     Set objOutputFile = objFSO.CreateTextFile("temp.txt") 
     Set objTextFile = objFSO.OpenTextFile("dtl.txt", ForReading) 
     strText = objTextFile.ReadAll 
     objTextFile.Close 
     objOutputFile.Write strText 

     Set objOutputFile = objFSO.CreateTextFile("dtl.txt") 
     Set objTextFile = objFSO.OpenTextFile("temp.txt", ForReading) 
     strText = objTextFile.ReadAll 
     objTextFile.Close 
     objOutputFile.Write strText 

     Set objTextFile = objFSO.OpenTextFile("C:\Users\ID\Documents\DATA-DTL\vbs\" & recentFile.Name, ForReading) 
     strText = objTextFile.ReadAll 
     objTextFile.Close 
     objOutputFile.Write strText 

     objOutputFile.Close 
    End If 

    WScript.Sleep (9000) 
Loop 

在第一個的代碼運行,但在循環,我得到一個錯誤

名稱重新定義「ForReading的」

回答

4

移動的Const ForReading = 1線正下方的dim聲明在腳本的頂部。

正如它所說的,你試圖在每次繞着循環時重新定義一個常量,這是沒有意義的。

+0

哇我看, 成功運行,沒有錯誤 謝謝你這麼多! – Joh

+1

@Joh如果您發現它解決了您的問題,請考慮[接受答案](http://meta.stackoverflow.com/a/5235)。 –

相關問題