Мне удалось найти & редактирование в одном файле слова. С помощью этого кода:Как заменить все вхождения строки в документы Word в папке
$objWord = New-Object -comobject Word.Application
$objWord.Visible = $false
$objDoc = $objWord.Documents.Open("C:\users\stefan\test\New Microsoft Word Document.docx")
$objSelection = $objWord.Selection
$FindText = "that"
$MatchCase = $False
$MatchWholeWord = $true
$MatchWildcards = $False
$MatchSoundsLike = $False
$MatchAllWordForms = $False
$Forward = $True
$Wrap = $wdFindContinue
$Format = $False
$wdReplaceNone = 0
$ReplaceWith = "this"
$wdFindContinue = 1
$a = $objSelection.Find.Execute($FindText,$MatchCase,$MatchWholeWord, `
$MatchWildcards,$MatchSoundsLike,$MatchAllWordForms,$Forward,`
$Wrap,$Format,$ReplaceWith)
$objDoc.Save()
$objWord.Quit()
Но я хочу сделать это для всей папки. Я пытался вставить что-то вроде этого:
$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($list.FullName,$true)
$objSelection = $objWord.Selection
$FindText = "Sara"
$MatchCase = $False
$MatchWholeWord = $true
$MatchWildcards = $False
$MatchSoundsLike = $False
$MatchAllWordForms = $False
$Forward = $True
$Wrap = $wdFindContinue
$Format = $False
$wdReplaceNone = 0
$ReplaceWith = "AJMOO"
$wdFindContinue = 1
$a = $objSelection.Find.Execute($FindText,$MatchCase,$MatchWholeWord, `
$MatchWildcards,$MatchSoundsLike,$MatchAllWordForms,$Forward,`
$Wrap,$Format,$ReplaceWith)
$objDoc.Save()
$objWord.Quit()
}
Кроме того, она изменяет только один элемент, который нашел, но я хочу, чтобы все элементы в файле. Спасибо.
Я до сих пор, чтобы проверить, но я вижу один потенциальный большой вопрос. '$ wdFindContinue' используется _before_, он определен. '$ wdFindContinue = 1' должен появиться, прежде чем назначить его' $ wrap'. Это что-то меняет? Это может сделать первый файл неработоспособным, но последующее может быть прекрасным. В любом случае это должно быть изменено. – Matt
@Matt, я сейчас проверю эту проблему, и я дам вам сейчас :) Спасибо. – Stefan0309