从多个Word文件中获取页面和单词计数而不打开它们

时间:2015-11-05 13:57:26

标签: windows csv command-line ms-word

我需要一个列表(在Windows 7中)作为Word文档的csv文件,在目录中显示其中的页数和单词数。我希望使用一种方法,我不必打开文件,因为有很多,但我找到的所有脚本都打开文件来查看这些信息。

所以,我基本上需要的是这个列表作为csv文件:

A list of files in a directory with attributes

是否有足够的方法来执行此操作,最好使用命令行?我已尝试过这个,但我不确定是否可以从文件中获取所需的信息:

powershell "Get-ChildItem -Recurse c:\directory\to\scan\ | ForEach-Object {$_ | add-member -name "Owner" -membertype noteproperty -value (get-acl $_.fullname).owner -passthru} | Sort-Object fullname | Select FullName,CreationTime,LastWriteTime,Length,Owner | Export-Csv -Force -NoTypeInformation c:\folder\to\directory.csv" 

Source

1 个答案:

答案 0 :(得分:0)

对于Word 2007及更高版本,您可以直接访问Office Open XML文件(密码/加密除外)。这些文件是“zip包”,包含定义文档内容的多个XML(有时是二进制)文件。除了二进制文件(OLE对象,宏)之外,文件是人类可读的,内容在ECMA文档中描述,可以从ECMA站点下载。 Open XML SDK可以更简单地处理这些文件。

您要查找的信息将存储在文件中,但您需要注意它可能不准确,尤其是页数。这是根据当前打印机设置的页面布局动态计算的内容。文档关闭时Word可能无法保存,并且保存的值可能不适用于打开文档的下一个配置。

信息保存在文档的扩展属性XML部分中; Open XML SDK的文档位于:https://msdn.microsoft.com/en-us/library/documentformat.openxml.extendedproperties(v=office.14).aspx

对于较旧的二进制文件格式,您可能会运气不好。二进制文件格式现在是公共的,但我不确定它是否保存了该信息。您可以在MSDN上找到更多信息 - https://msdn.microsoft.com/en-us/library/office/gg615596(v=office.14).aspx - 还有一个“开放规范”MSDN论坛,您可以在其中提出有关它的问题。