powershell 打开word检索关键字并出力结果


PowerShell交流中心分类: Questionspowershell 打开word检索关键字并出力结果
0
Grumpy asked 5 年 ago

我想在powershell中打开word检索关键字,但是不知道find方法在哪里,如何调用。
已知如何打开word
$path=”d:\”
$files=get-childitem $path -include “*.docx” -recurse
$doc=New-Object -ComObject Word.Application
$doc.visible=$false
foreach($file in $files){
      $document =$doc.documents.open($file.fullname,$false,$true)
 
}
 

1 Answers
0
Best Answer
Mooser Lee 管理员 answered 5 年 ago

换一个问法,《如何把word文档中的文本读出来》?
比如我在word文档中输入以下内容:

《风化不了的记忆》

作者:零海岸
朗诵:零海岸

记忆中的你
高呼人民万岁
我知道
这时候的人民是天 是地
当有人说
从此不用看群众脸色做事
我知道
人民就要成为弱势群体

记忆中的你
告诫全党坚持“两个务必”
我知道
这是你让党员们廉洁自律
当有些人
纵容老婆儿女敛财无忌
我知道了
上梁不正下梁歪的俗语真有道理

记忆中的你
意志果敢坚毅
我知道
你把为人民服务作为信仰条律
当有人触犯底线
我知道了
你一定奋起反抗强烈反击

记忆中的你
总是把眼光投向天际
我知道
五洲风云装在你的眼里
当地球一有风吹草动蛛丝马迹
我知道了
你便用四两拨千斤化解危机

记忆中的你
不会低眉顺眼
我知道
傲骨支撑着中国的身躯
当敌人无端挑衅进犯
我知道了
你会该出手时就出手毫不客气

记忆中的你
预言精确无异
我知道,你把一切运行规律谙熟洞悉;当所有的预判成为活生生的现实,我知道了,这世界没有神仙,但一定有神奇。

记忆中的你
记忆中的毛主席
谁能将你这样的英雄
从历史的记忆中抹去
那是一杆永世飘荡的大旗
那是一段风化不了的记忆
那记忆啊
永恒
天地

然后过滤所有包含【知道】关键字的文本行。

PS D:\> $word = New-Object -ComObject Word.Application
PS D:\> $doc= $word.documents.open('d:\test.docx',$false,$true)
PS D:\> $doc.Paragraphs | where {$_.Range.Text -like '*知道*' }  | foreach {$_.Range.Text}
我知道
我知道
我知道
我知道了
我知道
我知道了
我知道
我知道了
我知道
我知道了
我知道,你把一切运行规律谙熟洞悉;当所有的预判成为活生生的现实,我知道了,这世界没有神仙,但一定有神奇。