PowerShell找到商标

时间:2012-10-10 20:05:26

标签: powershell unicode

我正在尝试使用Select-String在docx文件中找到商标符号 - 符号的Unicode为0x00AE,但正则表达式(在RegExpal中有效){{1} }不起作用 我试过这个简单的事情:

\u00AE

我有点新手并且会感激任何帮助。

1 个答案:

答案 0 :(得分:4)

问题在于Select-Stringdocumentation)在纯文本文件中搜索字符串。

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

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

特别是,请查看Codeplex上Select-OpenXmlString项目的Power Tools for Open XML命令。 This blog post给出了说明和用法示例:

  

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

特别是,使用它来搜索"\u00AE"

之类的字符串
  

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

Select-OpenXmlString *.docx -simpleMatch France -List | Select-Object Filename