Отслеживание изменений в MS Word с помощью скрипта PowerShell

374
Densetsu

Может ли кто-нибудь помочь мне изменить приведенный ниже скрипт, чтобы он также мог отслеживать изменения в MS 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() 
0
Я не думаю, что кто-то здесь захочет запрограммировать для вас. На самом деле вы должны попробовать сами, а затем прийти с конкретным вопросом на случай, если у вас возникнут проблемы. davidbaumann 6 лет назад 0
Я пытался, и я даже не могу найти место, чтобы искать направление, в котором можно провести мое исследование. Если у вас есть конструктивный совет по этому поводу, я буду очень признателен. Я уже несколько часов гуглил. Densetsu 6 лет назад 0
В VBA Word публикует [объект Revisions] (https://docs.microsoft.com/en-us/office/vba/api/word.revisions). Я не знаю, существует ли он также в PowerShell. harrymc 6 лет назад 0

1 ответ на вопрос

0
motosubatsu

Терпите меня, когда я делаю это по памяти, но это должно сработать:

$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)  $objDoc.TrackRevisions = $true  $objDoc.ShowRevisions = $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() 
О, это работает ОТЛИЧНО !!!! БЛАГОДАРЮ ВАС! Densetsu 6 лет назад 0
@Densetsu рад, что это сработало :) motosubatsu 6 лет назад 0

Похожие вопросы