有没有办法强制Powershell以只读方式打开文档并关闭而不保存?

时间:2013-10-30 13:43:49

标签: powershell file-io

我有一个解析Word文档数据的脚本。我今天早上到办公室意识到脚本没有完成,挂在“使用中的文件”对话框中。我在MSDN上找到了对$true参数的引用 - 打开只读 - 但我仍然得到了对话框。

enter image description here

当然,有一件事导致另一件事,现在我也会得到一个对话框,询问我是否要在我打开NEXT文档之前保存更改,因为无法访问一个打开的对话框。叹。如何打开文档,扫描我的数据(超链接)然后关闭文档而不保存?

enter image description here

此处显示代码。我没有包括我将$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();
}

2 个答案:

答案 0 :(得分:6)

如需阅读,请尝试以下方法:

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

关闭,试试这个:

$word.Documents.Close($false)

MSDN链接似乎非常清楚这些参数需要出现的顺序,以上内容对我有效。

答案 1 :(得分:0)

可能您忘记了关闭程序中的文件。对我而言,延迟文件。Close()(goLang)修复了该文件。