2013-04-29 58 views
-1

在一些朋友的幫助下,我做了這個代碼根據文件擴展名將文件複製到不同的文件夾。我將安排每十分鐘運行一次這個腳本,因此每當它複製一個新文件時,它應該以文本格式記錄到C盤。可能嗎?請幫助我。VbScript來創建日誌的活動

Set fso = CreateObject("Scripting.FileSystemObject") 

Set testfolder = CreateObject("Scripting.Dictionary") 
testfolder.CompareMode = vbTextCompare 'case-insensitive 
testfolder.Add "env", "D:\env" 
testfolder.Add "ikey", "D:\key" 
'fso.CreateFolder(testfolder) 

CopyFiles fso.GetFolder("D:\source") 

Sub CopyFiles(fldr) 
For Each f In fldr.Files 
basename = fso.GetBaseName(f) 
extension = fso.GetExtensionName(f) 
If testfolder.Exists(extension) Then 
dest = fso.BuildPath(testfolder(extension), f.Name) 
If Not fso.FileExists(dest) Then f.Copy dest 
End If 

Next 

For Each sf In fldr.SubFolders 
CopyFiles sf 
Next 
End Sub 

回答

1

您需要爲此創建一個新對象,然後寫入一個文件。

所以,你需要

dim fs,fi 
Set fs= CreateObject("Scripting.FileSystemObject") 
Set fi=fs.CreateTextFile("testFile.txt",true, -1) 
Set fso = CreateObject("Scripting.FileSystemObject") 
Set testfolder = CreateObject("Scripting.Dictionary") 

testfolder.CompareMode = vbTextCompare 'case-insensitive 
testfolder.Add "env", "D:\env" 
testfolder.Add "ikey", "D:\key" 
'fso.CreateFolder(testfolder) 

CopyFiles fso.GetFolder("D:\source") 

Sub CopyFiles(fldr) 
    For Each f In fldr.Files 
     basename = fso.GetBaseName(f) 
     extension = fso.GetExtensionName(f) 

     If testfolder.Exists(extension) Then 
     dest = fso.BuildPath(testfolder(extension), f.Name) 
     End If 

     If Not fso.FileExists(dest) Then 
     f.Copy dest 
     fi.writeline("This file copied") ' THIS IS WHERE THE FAULT IS 
     End If 
    Next 
    For Each sf In fldr.SubFolders 
     CopyFiles sf 
    Next 
    fi.close 
    set f=nothing 
    set fs=nothing 
End Sub 
+0

,如果我想保存在日誌中C,其中我應該給路徑日誌:\日誌 – kumar 2013-04-29 12:55:59

+0

@Kumar,你真的需要這麼多的日誌或超過寫最新的。如果你每10分鐘運行一次,你的日誌文件的文件夾會非常快速地變大 – Dave 2013-04-29 13:35:44

+0

@kumar,再次更新我的代碼 – Dave 2013-04-29 14:04:09