我想将内容格式从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/