1

我正在尝试使用Select-String在 docx 文件中查找商标符号-符号的 Unicode 是0x00AE,但是正则表达式(在 RegExpal 中确实有效)\u00AE不起作用我只尝试了这个简单的事情:

Select-String -Path *.docx "\u00AE"

我有点新手,将不胜感激任何帮助。

4

1 回答 1

4

问题是Select-String文档)在纯文本文件中搜索字符串。

DOCX 文件不是纯文本,而是 ZIP 容器中的一堆 XML 文件。这是一个二进制文件,由于压缩,甚至不会包含文档文本中的字符。

您可能想要的是一个可以读取 OOXML 文档的库;然后,您将在库返回的文本中进行搜索。

特别是,查看Codeplex 上的Power Tools for Open XML项目中的Select-OpenXmlString命令。这篇博文给出了描述和使用示例:

Select-OpenXmlString[...] 具有与 PowerShell 附带的 Select-String cmdlet 类似的功能。

特别是,要使用它来搜索类似的字符串"\u00AE"

您可以使用 Select-OpenXmlString 的 –List 参数来检索具有特定内容的所有文档的列表。在这个目录中,我有很多 Open XML 文档,并且想找到所有提到法国的文档。

Select-OpenXmlString *.docx -simpleMatch France -List | Select-Object Filename
于 2012-10-10T20:11:32.027 回答