powershell - 打开Word应用程序时的“Document is used”

标签 powershell ms-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()

关于powershell - 打开Word应用程序时的“Document is used”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63890918/

相关文章:

powershell - PowerShell获取网络计算机列表

powershell - 从目录结构复制文件但排除命名文件夹

c# - 如何在 Word 文件中查找数学方程式,如果找到则使用 vsto c# 突出显示它

c# - Aspose.Words - 邮件合并图像

Windows 窗体无法访问 PowerShell 变量

windows - 如何运行带有详细输出的 PowerShell 脚本?

vba - 填写表格ms-word VBA/通过Word进行最有效的智能导航

php - 使用 PHPWord 加载 .docx

ms-word - 删除页脚中的行

用于销毁资源的 Powershell 动词