1

私はSelect-Stringdocxファイルで商標記号を見つけるために使用しようとしています-記号のUnicodeは です0x00AEが、正規表現(たとえばRegExpalで機能します)\u00AEは機能しません。この単純なことを試しました:

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

私は少し初心者で、どんな助けにも感謝します。

4

1 に答える 1

4

問題は、Select-String(ドキュメント) がプレーンテキストファイル内の文字列を検索することです。

DOCX ファイルはプレーン テキストではなく、ZIP コンテナー内の一連の XML ファイルです。これはバイナリ ファイルであり、圧縮されているため、ドキュメントのテキストの文字さえ含まれません。

おそらく必要なのは、OOXML ドキュメントを読み取ることができるライブラリです。次に、ライブラリから返されたテキストを検索します。

特に、CodeplexのPower Tools for Open XMLSelect-OpenXmlStringプロジェクトのコマンドを見てください。このブログ投稿では、説明と使用例を示しています。

Select-OpenXmlString[...] には、PowerShell に付属する Select-String コマンドレットと同様の機能があります。

特に、 のような文字列を検索するために使用するには"\u00AE"

Select-OpenXmlString の –List パラメーターを使用して、特定のコンテンツを含むすべてのドキュメントの一覧を取得できます。このディレクトリには、多くの Open XML ドキュメントがあり、フランスに言及しているすべてのドキュメントを検索したいと考えています。

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