列出文件夹和子文件夹中的文件,并将结果输出到每个父文件夹的多个文件中
问题描述:
我正在使用代码列出文件夹中的文件。列出文件夹和子文件夹中的文件,并将结果输出到每个父文件夹的多个文件中
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
与列出的所有文件。
请建议如何实现,以便我分别获得每个父文件夹的输出。
答
您必须在获取父文件夹名称之后移动输出文件的定义,并包含文件夹的.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
SO不是代码(重新)写入服务。到目前为止您尝试了什么,以及您需要哪些特殊问题? –
@Ansgar Wiechers - 我想为每个父文件夹获取多个输出。我不知道在上面的代码中把这个条件放在哪里。 For Each ObjFolder in(MyLocation) ObjOutFile = fso.CreateTextFile(ObjFolder.Name&“_”&“OutputFiles.csv”) –
显然,在处理输出文件的代码周围。 –