2015-11-02 62 views
0

我正在使用代碼列出文件夾中的文件。列出文件夾和子文件夾中的文件,並將結果輸出到每個父文件夾的多個文件中

Dim fso 
Dim ObjOutFile 

Set fso = CreateObject("Scripting.FileSystemObject") 
Set ObjOutFile = fso.CreateTextFile(GetFiles(FolderName) & "_"&"OutputFiles.csv") 

ObjOutFile.WriteLine("Type,File Name,File Path") 
GetFiles("YOUR LOCATION") 
ObjOutFile.Close 

WScript.Echo("Completed") 

Function GetFiles(FolderName) 
    On Error Resume Next 

    Dim ObjFolder 
    Dim ObjSubFolders 
    Dim ObjSubFolder 
    Dim ObjFiles 
    Dim ObjFile 

    Set ObjFolder = fso.GetFolder(FolderName) 
    Set ObjFiles = ObjFolder.Files 

    For Each ObjFile In ObjFiles 
     ObjOutFile.WriteLine("File," & ObjFile.Name & "," & ObjFile.Path) 
    Next 

    Set ObjSubFolders = ObjFolder.SubFolders 

    For Each ObjFolder In ObjSubFolders 
     ObjOutFile.WriteLine("Folder," & ObjFolder.Name & "," & ObjFolder.Path) 
     GetFiles(ObjFolder.Path) 
    Next 
End Function 

我得到輸出_OutputFiles.csv

如果我跑我想要的輸出文件夾中的腳本

New Folder (3)_OutputFiles.csv 
New Folder (2)_OutputFiles.csv 

與列出的所有文件。

請建議如何實現,以便我分別獲得每個父文件夾的輸出。

+0

SO不是代碼(重新)寫入服務。到目前爲止您嘗試了什麼,以及您需要哪些特殊問題? –

+0

@Ansgar Wiechers - 我想爲每個父文件夾獲取多個輸出。我不知道在上面的代碼中把這個條件放在哪裏。 For Each ObjFolder in(MyLocation) ObjOutFile = fso.CreateTextFile(ObjFolder.Name&「_」&「OutputFiles.csv」) –

+0

顯然,在處理輸出文件的代碼周圍。 –

回答

0

您必須在獲取父文件夾名稱之後移動輸出文件的定義,幷包含文件夾的.Name屬性。

Dim fso 
Dim ObjOutFile 

Set fso = CreateObject("Scripting.FileSystemObject") 
GetFiles("YOUR LOCATION") 
ObjOutFile.Close 

WScript.Echo("Completed") 

Function GetFiles(FolderName) 
    On Error Resume Next 

    Dim ObjFolder 
    Dim ObjSubFolders 
    Dim ObjSubFolder 
    Dim ObjFiles 
    Dim ObjFile 

    Set ObjFolder = fso.GetFolder(FolderName) 
     Set ObjOutFile = fso.CreateTextFile(GetFiles(FolderName.Name) & "_"&"OutputFiles.csv") 
     ObjOutFile.WriteLine("Type,File Name,File Path") 
    Set ObjFiles = ObjFolder.Files 

    For Each ObjFile In ObjFiles 
     ObjOutFile.WriteLine("File," & ObjFile.Name & "," & ObjFile.Path) 
    Next 

    Set ObjSubFolders = ObjFolder.SubFolders 

    For Each ObjFolder In ObjSubFolders 
     ObjOutFile.WriteLine("Folder," & ObjFolder.Name & "," & ObjFolder.Path) 
     GetFiles(ObjFolder.Path) 
    Next 
End Function 
相關問題