如何替换文件夹中Word文档中所有出现的多个字符串

时间:2018-09-19 08:57:32

标签: string windows powershell edit bulk

这是关于此主题的后续问题:如何替换文件夹中Word文档中所有出现的字符串-效果很好。

$objWord = New-Object -comobject Word.Application  
$objWord.Visible = $false

$list = Get-ChildItem "c:\users\stefan\test\*.*" -Include *.doc*
foreach($item in $list){
$objDoc = $objWord.Documents.Open($item.FullName,$true)

$objSelection = $objWord.Selection 
$wdFindContinue = 1
$FindText = "Sara" 
$MatchCase = $False 
$MatchWholeWord = $true
$MatchWildcards = $False 
$MatchSoundsLike = $False 
$MatchAllWordForms = $False 
$Forward = $True 
$Wrap = $wdFindContinue 
$Format = $False 
$wdReplaceNone = 0 
$ReplaceWith = "AJMOO" 
$wdFindContinue = 1 
$ReplaceAll = 2

$a = $objSelection.Find.Execute($FindText,$MatchCase,$MatchWholeWord, ` 
$MatchWildcards,$MatchSoundsLike,$MatchAllWordForms,$Forward,` 
$Wrap,$Format,$ReplaceWith,$ReplaceAll) 
$objDoc.Save()
$objDoc.Close()
}
$objWord.Quit()

除了该代码的作用之外,我还需要: 1)跟踪每个Word文档中的更改 2)在代码中再添加3个字符串

这是我尝试过的方法(它不起作用):

$objWord = New-Object -comobject Word.Application  
$objWord.Visible = $false
$objWord2 = New-Object -comobject Word.Application 
$objWord2.Visible = $false

$list = Get-ChildItem "C:\Users\antoanetage\Desktop\test location\*.*" - 
Include *.docx*
foreach($item in $list){
$objDoc = $objWord.Documents.Open($item.FullName,$true)
$objDoc = $objWord2.Documents.Open($item.FullName,$true)

$objSelection = $objWord.Selection 
$wdFindContinue = 1
$FindText = "OCC" 
$MatchCase = $true 
$MatchWholeWord = $true
$MatchWildcards = $False 
$MatchSoundsLike = $False 
$MatchAllWordForms = $False 
$Forward = $True 
$Wrap = $wdFindContinue 
$Format = $False 
$wdReplaceNone = 0 
$ReplaceWith = "Programme resource centre" 
$wdFindContinue = 1 
$ReplaceAll = 2

$objSelection = $objWord2.Selection 
$wdFindContinue = 1
$FindText = "Handbook of procedures" 
$MatchCase = $true 
$MatchWholeWord = $true
$MatchWildcards = $False 
$MatchSoundsLike = $False 
$MatchAllWordForms = $False 
$Forward = $True 
$Wrap = $wdFindContinue 
$Format = $False 
$wdReplaceNone = 0 
$ReplaceWith = "Diploma Programme Assessment Procedures" 
$wdFindContinue = 1 
$ReplaceAll = 2

$a = $objSelection.Find.Execute($FindText,$MatchCase,$MatchWholeWord, ` 
$MatchWildcards,$MatchSoundsLike,$MatchAllWordForms,$Forward,` 
$Wrap,$Format,$ReplaceWith,$ReplaceAll) 
$objDoc.Save()
$objDoc.Close()
}
$objWord.Quit()

0 个答案:

没有答案