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

dww*_*n66 5 powershell file-io

我有一个脚本,可以解析Word文档中的数据。我今天早上到达办公室,发现脚本没有完成,挂在“正在使用的文件”对话框中。我$trueMSDN上找到了对参数的引用-打开“只读” ,但仍然看到对话框。

在此处输入图片说明

当然,一件事导致另一件事,现在我还得到对话框,询问是否要保存更改,然后再打开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();
}
Run Code Online (Sandbox Code Playgroud)

小智 8

对于只读,请尝试以下操作:

$word.Documents.Open("$doc.Fullname", $false, $true)
Run Code Online (Sandbox Code Playgroud)

要关闭,请尝试以下操作:

$word.Documents.Close($false)
Run Code Online (Sandbox Code Playgroud)

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

  • 为了关闭我不得不使用这个:`$document.Close([ref] [Microsoft.Office.Interop.Word.WdSaveOptions]::wdDoNotSaveChanges)`。请参阅 [msdn Documents.Close](https://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.documents.close.aspx)。 (3认同)