Powershell单词标题替换

时间:2014-12-08 12:32:26

标签: powershell

我想替换word文档中的标题。

$pth = "d:\test\test.docx"
$objWord = New-Object -ComObject word.application
$objWord.Visible = $True

$objDoc = $objWord.Documents.Open($pth)
$objSelection = $objWord.Selection

$Section = $objDoc.Sections.Item(1)
$header = $Section.Headers.Item(1)

这给我一个明确的文字:

Write-Host $header.Range.Text  

但我的标题有图像和表格。我可以在不破坏标题的情况下替换标题中的字符串吗?我替换word文档中的字符串,效果很好。我唯一的问题是标题。

链接到下面的示例Word文档标题。

http://zapodaj.net/223c522426648.png.html

2 个答案:

答案 0 :(得分:0)

试试这个:

$replaceWith = "New Text !"
$replace = [Microsoft.Office.Interop.Word.WdReplace]::wdReplaceAll
$findWrap = [Microsoft.Office.Interop.Word.WdFindWrap]::wdFindContinue

$find = $header.Range.find
$find.Execute($header.Range.Text, 
              $false, #match case
              $false, #match whole word
              $false, #match wildcards
              $false, #match soundslike
              $false, #match all word forms
              $true,  #forward
              $findWrap, 
              $null,      #format
              $replaceWith,
              $replace)

图片和其他表格应保持不变。

答案 1 :(得分:0)

我不知道PowerShell中的解决方案,但我使用的是来自powershell的VBA。

//代码已更改,如果它不工作,请告诉我

$objWord = New-Object -ComObject word.application
$objWord.Visible = $True # don't have to be true

$pathToFile = "d:\Delivery_Templates\filename.docx" #path to your file

$objDoc = $objWord.Documents.Open(pathToFile )
$objSelection = $objWord.Selection

$objWord.Run('myReplace', [ref] $currentVersion); # myReplace - macro name, currentVersion - macro parameter