6

我有一个从 Word 文档中解析数据的脚本。今天早上我到办公室发现脚本还没有完成,挂在“正在使用的文件”对话框上。我在MSDN上找到了对$true参数的引用 -- open Read-Only -- ,但我仍然得到对话框。

在此处输入图像描述

当然,一件事导致另一件事,现在我还收到一个对话框,询问我是否要在打开 NEXT 文档之前保存更改,由于打开的对话框而无法访问该文档。叹。如何打开文档,扫描它以获取我的数据(超链接),然后关闭文档而不保存?

在此处输入图像描述

代码出现在这里。我没有包括写入$hyperlinks文件的步骤;我只是专注于让文件读取关闭部分工作。

$global:word = new-object -ComObject Word.Application 
$word.Visible = $False 
$backupPath   = "\\Path\to\files\"   # Backup data path
$srcfiles     = Get-ChildItem $backupPath -filter "*.doc"
 #   
foreach ($doc in $srcfiles) {
    $word.documents.Open($doc.Fullname,$true);
    $links = @($doc2.Hyperlinks);
    $links
    $word.Quit();
}
4

2 回答 2

11

只读,试试这个:

$word.Documents.Open("$doc.Fullname", $false, $true)

关闭,试试这个:

$word.Documents.Close($false)

MSDN 链接似乎很清楚这些参数需要出现的顺序,上面对我有用。

于 2013-10-30T18:07:48.730 回答
0

可能您忘记关闭程序中的文件。对我来说 defer file.Close() (goLang) 修复了它。

于 2018-11-21T10:01:43.317 回答