有没有办法强制Powershell以只读方式打开文档并关闭而不保存?
我有一个脚本,可以解析Word文档中的数据。今天早上我来到办公室,发现脚本还没有完成,挂在一个“正在使用的文件”对话框上。我发现一个对有没有办法强制Powershell以只读方式打开文档并关闭而不保存?,powershell,file-io,Powershell,File Io,我有一个脚本,可以解析Word文档中的数据。今天早上我来到办公室,发现脚本还没有完成,挂在一个“正在使用的文件”对话框上。我发现一个对$true参数的引用--open Read Only--on,但是我仍然得到了对话框 当然,一件事导致另一件事,现在我也看到一个对话框,询问我是否要在打开下一个文档之前保存更改,因为打开了一个对话框,所以无法访问下一个文档。唉。如何打开文档,扫描文档中的数据(超链接),然后关闭文档而不保存 代码出现在这里。我没有包括将$hyperlinks写入文件的步骤;我只
$true
参数的引用--open Read Only--on,但是我仍然得到了对话框
当然,一件事导致另一件事,现在我也看到一个对话框,询问我是否要在打开下一个文档之前保存更改,因为打开了一个对话框,所以无法访问下一个文档。唉。如何打开文档,扫描文档中的数据(超链接),然后关闭文档而不保存
代码出现在这里。我没有包括将$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();
}
对于只读,请尝试以下操作:
$word.Documents.Open("$doc.Fullname", $false, $true)
$word.Documents.Close($false)
要关闭,请尝试以下操作:
$word.Documents.Open("$doc.Fullname", $false, $true)
$word.Documents.Close($false)
MSDN链接似乎非常清楚这些参数需要显示的顺序,上面的内容对我很有用。可能是您忘了关闭程序中的文件。对我来说,延迟文件.Close()(goLang)修复了它。我不太喜欢COM,但是如果Microsoft Word Viewer是一个COM应用程序,那么它似乎是一个更好的选择,适合于您试图完成的任务。要关闭它,我必须使用以下命令:
$document.Close([ref][Microsoft.Office.Interop.Word.WdSaveOptions]::wdDoNotSaveChanges)
。看见