Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法强制Powershell以只读方式打开文档并关闭而不保存?_Powershell_File Io - Fatal编程技术网

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

有没有办法强制Powershell以只读方式打开文档并关闭而不保存?,powershell,file-io,Powershell,File Io,我有一个脚本,可以解析Word文档中的数据。今天早上我来到办公室,发现脚本还没有完成,挂在一个“正在使用的文件”对话框上。我发现一个对$true参数的引用--open Read Only--on,但是我仍然得到了对话框 当然,一件事导致另一件事,现在我也看到一个对话框,询问我是否要在打开下一个文档之前保存更改,因为打开了一个对话框,所以无法访问下一个文档。唉。如何打开文档,扫描文档中的数据(超链接),然后关闭文档而不保存 代码出现在这里。我没有包括将$hyperlinks写入文件的步骤;我只

我有一个脚本,可以解析Word文档中的数据。今天早上我来到办公室,发现脚本还没有完成,挂在一个“正在使用的文件”对话框上。我发现一个对
$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)
。看见