打开Word应用程序时“使用文档”

问题描述

我想将内容从docx复制到txt文件我有以下问题:

运行$doc = $wd.Documents.Open($path)后,将打开一个对话框,指出该文档已被使用。我必须手动选择以打开只读版本,将文件另存为新文件,或者在文档准备就绪时收到通知(标准Windows消息)
我没有打开文件

我确实有解决方案:我运行一行代码Get-Process -Name "*word*" | Stop-Process

我的问题:我敢肯定,有一种更优雅的方法可以正确地做到这一点,对吗?在我的解决方案中,运行代码会阻止我在运行脚本时使用任何docx ...

$path="C:\test\Test.docx"
$destination="C:\Test\File1.txt"

$wd = New-Object -COM 'Word.Application'

$doc = $wd.Documents.Open($path)

$content=$doc.Content.Text 

$doc.Close()

Set-Content -Path $destination -Value $content 

解决方法

我个人一直被言语所咬,没有完全放开我的文件。仔细检查不是引起问题的测试代码。

除了关闭文档之外,还关闭单词实例。

$wd.quit()

此外,您可以强制垃圾收集。

[System.GC]::Collect()