微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 PowerShell 访问“上次保存日期” 用法

如何解决使用 PowerShell 访问“上次保存日期” 用法

我正在尝试使用 PowerShell 访问 xls 文件 的上次保存日期。它位于详细信息页面中,更像是文件的隐藏属性。附上图供参考。

Date Last Saved

编辑:感谢您的帮助。两种解决方案都有效,但我处于受限语言模式,因此我无法使用它们:(

解决方法

之前我有一个答案讨论如何检索基本文件信息,但要访问 Office 文件信息,您必须做更多的工作...

Using this answer from a previous question,我创建了一个 PowerShell 函数来让您轻松完成这项工作。

Source Here on github

用法

Get-OfficeFileInfo  C:\temp\UsersOfabc.comDomain.xlsx 

Name             Exp                  
----             ---                  
Title                                 
Subject                               
Author                                
Keywords                              
Comments                              
Template                              
Last author      Stephen Owen         
Revision number                       
Application name Microsoft Excel      
Creation date    7/21/2021 11:30:51 AM
Last save time   7/21/2021 11:30:51 AM
Security         0                    
Category                              
Format                                
Manager                               
Company                               
Hyperlink base                        
Content type                          
Content status                        
Language                              
Document version 

获取您想要的特定属性

$fileInfo = Get-OfficeFileInfo  C:\temp\UsersOfabc.comDomain.xlsx 
$dateSaved = $fileInfo | ? Name -eq "Last save time"

C:\temp\> $dateSaved.Exp

Wednesday,July 21,2021 11:30:51 AM

,

为了这个,我发现了一个兔子洞,但我找到了下面的。

该属性不是文件属性的一部分。它是工作表属性的一部分(与许多属性一样)。

全部归功于脚本专家 Ed Wilson 和 Craig Liebendorfer - https://devblogs.microsoft.com/scripting/hey-scripting-guy-how-can-i-read-microsoft-excel-metadata/

$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
$workbook = $excel.Workbooks.Open("C:\temp\Test.xlsx")
$binding = "System.Reflection.BindingFlags" -as [type]

Foreach($property in $workbook.BuiltInDocumentProperties){
    if ([System.__ComObject].invokemember("name",$binding::GetProperty,$null,$property,$null) -eq "Last save time"){
        [System.__ComObject].invokemember("value",$null)
    }
}
$excel.quit()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。