1
一个Word文档中的所有隐藏的文本使用PowerShell,我需要编写一个脚本这将移除Word文档中所有隐藏的文本。编程方式删除
这是我到目前为止有:
$WordDocument = Get-Item "C:\MyWordDocument.docx"
$word_app = New-Object -ComObject Word.Application
$word_app.Visible = $false
$document = $word_app.Documents.Open($WordDocument.FullName)
$objSelection = $word_app.Selection
$objSelection.Font.Hidden = $True
$FindText = "" # search on formatting only (according to MS doc)
$wdFindContinue = 1
$ReplaceAll = 2
$MatchCase = $False
$MatchWholeWord = $False
$MatchWildcards = $False
$MatchSoundsLike = $False
$MatchAllWordForms = $False
$Forward = $True
$Wrap = $wdFindContinue
$Format = $True # ?
$ReplaceWith = ""
$a = $objSelection.Find.Execute($FindText,$MatchCase,$MatchWholeWord, `
$MatchWildcards,$MatchSoundsLike,$MatchAllWordForms,$Forward,`
$Wrap,$Format,$ReplaceWith,$ReplaceAll)
$document.Save()
$document.Close()
$word_app.Quit()
它不工作,我想不通为什么。
有什么想法?
嗨杰罗姆,你是一个到Find.Execute方法调用指定$。从MS文档[链接](https://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.find.execute.aspx)它说,返回类型是真还是假。 $是真的还是假的?我不认为你需要$ a,除非你想知道它是真是假。如果您删除$ a,它是否正确运行?谢谢,TIm。 –
它实际上返回$ false ...我不明白为什么。 –
$ objSelection.Find.Execute($ FINDTEXT,$ MatchCase,$ MatchWholeWord,$ MatchWildcards,$ MatchSoundsLike,$ MatchAllWordForms,$前进,$裹,$格式,$ ReplaceWith,$的replaceAll) 如果你只是运行会发生什么以上?而不是$ a =在它前面。 –