Csv 列出文件夹和子文件夹中的文件,并将结果输出到每个父文件夹的多个文件中

Csv 列出文件夹和子文件夹中的文件,并将结果输出到每个父文件夹的多个文件中,csv,vbscript,Csv,Vbscript,我正在使用代码列出文件夹中的文件 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 L

我正在使用代码列出文件夹中的文件

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

如果我在文件夹中运行脚本,我希望输出为

新文件夹(3)\u OutputFiles.csv
新文件夹(2)\u OutputFiles.csv
列出了所有文件


请建议如何实现,以便分别获取每个父文件夹的输出。

获取父文件夹名称后,必须移动输出文件的定义,并包括文件夹的.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

因此,这不是一个代码(重新)编写服务。到目前为止,您尝试了什么,您需要帮助解决什么特定问题?@Ansgar Wiechers-我想为每个父文件夹获得多个输出。我不知道在上面的代码中把这个条件放在哪里。显然,对于(MyLocation)ObjOutFile=fso.CreateTextFile(ObjFolder.Name&“&”OutputFiles.csv”)中的每个ObjFolder,以及处理输出文件的代码。请设置ObjOutFile=fso.CreateTextFile(GetFiles(FolderName)&“&”OutputFiles.csv“)'我添加了这一行,但它作为_output.csv运行。请使用您当前拥有的完整非工作代码以及简明的问题描述更新您的问题。我不会从你在评论中的点点滴滴猜出问题出在哪里。