【问题标题】:How to run Break Link option in Powershell for Multiple word document如何在 Powershell 中为多个 word 文档运行断开链接选项
【发布时间】:2020-12-11 02:23:25
【问题描述】:

我在文件夹 D:\xxx.docx 中有 word 文件,其中有图像,但这些是外部链接的。 现在我想用 Break 链接保存 docx 文件,以便文档成为嵌入图像的文档。

我找到了一些代码,但不知道如何正确放置,请任何人帮忙

$wrd = New-Object -ComObject "Word.Application"
$doc = $wrd.Documents.Open('C:\test.rtf')
$opt = [ref][Microsoft.Office.Interop.Word.WdSaveFormat]::WdFormatRTF
$name= [ref]'C:\test.rtf'
$wrd.ActiveDocument.SaveAs($name, $opt)
$wrd.ActiveDocument.Close()
$wrd.Quit()

    $images = $doc.InlineShapes              
    foreach ($image in $images) {            
      $linkFormat = $image.LinkFormat        
      $linkFormat.SavePictureWithDocument = 1
      $linkFormat.BreakLink()                
    } 

【问题讨论】:

  • 如果不调用 Word (COM),您将无法执行此操作。 Youtube 上有很多关于如何使用 PowerShell 处理 Word、Excel 等文档的示例和视频。此外,SO 规则:Provide MRE --- How to ask --- Don't ask --- Proper Topic --- Why not upload images of code/errors?
  • 我找到了一些代码,但不知道如何正确放置,请任何人帮忙
  • 为了能够对多个文件执行此操作,这就是 Get-ChildItem 的用途。使用 GCI 查找所有文件,仅打开一次 MSWord COM,然后遍历文件,将名称传递给循环,以进行更改。然后关闭 MSWord 并退出您的脚本。
  • @Postanote,您能否按照您的建议编写代码。前 7 行很多不需要,因为我已经有 rtf 文件。
  • 这是我在 doc 文件中手动执行但想在 Powershell 中执行的步骤:在 MS word 中打开 docx 文件或 rtf 文件,插入图片。假设电脑位于文件夹 d:\pic.png.now 将文件保存为 docx 并将其分享给某人。当他打开 doc 文件时,他将看不到图片,因为他缺少图片文件的位置。所以手动修复是断开指向您的文档的链接并将其保存然后发送给其他人。所以我在这里做什么我想用powershell来做。我分享的很多代码都不正确,我从 Web 的不同来源收集到的代码

标签: powershell


【解决方案1】:

根据我的评论。请参阅与您的用例类似的此 SO Q&A:

Replacing all occurrences of a string in a Word file by an hyperlink

虽然那里的 OP 说的是替换,但删除的方法是一样的。

【讨论】:

    猜你喜欢
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-26
    • 2021-07-15
    • 1970-01-01
    • 2020-10-22
    相关资源
    最近更新 更多