Vbscript &引用;GetDetailsSof";方法返回属性名,而不是值
我试图找到目录中每个文件的“作者”和“上次修改人”详细信息,我使用VBScript循环,因为我认为这比使用VBA更快。我遇到的问题是,我的代码只返回“Owner”和“Author”,而不是实际值。在VBA中获取这些值没有问题,但速度非常慢 到目前为止,我有以下代码:Vbscript &引用;GetDetailsSof";方法返回属性名,而不是值,vbscript,Vbscript,我试图找到目录中每个文件的“作者”和“上次修改人”详细信息,我使用VBScript循环,因为我认为这比使用VBA更快。我遇到的问题是,我的代码只返回“Owner”和“Author”,而不是实际值。在VBA中获取这些值没有问题,但速度非常慢 到目前为止,我有以下代码: Set objDlg = WScript.CreateObject("Shell.Application") '''startFolder = objStartFolder.ParentFolder.ParseName(objSta
Set objDlg = WScript.CreateObject("Shell.Application")
'''startFolder = objStartFolder.ParentFolder.ParseName(objStartFolder.Title).Path
startFolder = oShell.NameSpace("C:\Users\x4ujoh\Desktop\")
'Run the function
ReportFiles startFolder
Function ReportFiles(folderName)
Dim objFolder, objFile, fileCollection, folderCollection, subFolder
Set objFolder = objFSO.GetFolder(folderName)
Set fileCollection = objFolder.Files
For Each objFile In fileCollection
strFilePath = Chr(34) & objFile.Path & Chr(34)
strFileName = Chr(34) & objFile.Name & Chr(34)
strFileSize = objFile.Size / 1024
strFileType = Chr(34) & objFile.Type & Chr(34)
strFileDateCreated = objFile.DateCreated
strFileDateLastAccessed = objFile.DateLastAccessed
strFileDateLastModified = objFile.DateLastModified
strFilePathRep = Replace(objFile.Path, objFile.Name, "")
strFileAuthor = Chr(34) & objDlg.NameSpace(strFilePathRep).GetDetailsOf(objFile.Name, 10) & Chr(34)
strFileLastModifiedBy = Chr(34) & objDlg.NameSpace(strFilePathRep).GetDetailsOf(objFile.Name, 20) & Chr(34)
objReportFile.Write(strFilePath & "," & strFileName & "," & strFileSize & "," & strFileType & "," & strFileDateCreated & "," & strFileDateLastAccessed & "," & strFileDateLastModified & "," & strFileAuthor & "," & strFileLastModifiedBy & Chr(13) & Chr(10))
Next
'Loop for each sub folder
Set folderCollection = objFolder.SubFolders
For Each subFolder In folderCollection
ReportFiles subFolder.Path
Next
End Function
您必须使用
GetDetailsOf(objFile,…)
而不是GetDetailsOf(objFile.Name,…)
目前VBScript中的哪个代码号代表“最后一位作者”?10似乎是“所有者”,20是“作者”(最初),但从1到300的循环似乎没有显示任何类似于“最后一个作者”的内容,没有称为“最后一个作者”的属性。不确定在哪里设置……也只是为了确认,您需要VBScript;你不是通过Excel等来做这件事的吗?我将改进我的答案(因为回过头来看,我可以看到一些效率低下的地方,另外我自己需要一个改进的版本),但它至少部分基于Excel。re:上一个作者
。。。您对MS Office文档感兴趣的文件是什么?该字段是否实际被称为上次被修改的?根据您的回答,可能有两种方法中的一种可以检索该信息。到目前为止,我所看到的是访问该项目的一种方法是使用“Last Saved By”=[Object]。内置文档属性(“Last Author”),但我只看到过有关MS Office对象/使用VBA的方法。我需要确认此审计信息是MS Office独有的。如果是这种情况,那么我将把属性收集限制在这些MS特定的对象上。