有没有办法在不查看扩展名的情况下查询文件以查看它是否是Excel文档?
我有一种情况需要将大量文件转换为PDF(从Excel和Word)。在某些情况下,我发现使用.doc扩展名保存的文件,但实际上是Excel文件。我已将一些重命名为.xls,它们在Excel中启动得很好。它们出现在查找器中作为Word 95文档,我想因为它们是二进制文件并且具有.doc扩展名。
Excel中是否有一些标准的标题或文本可以在字符串中搜索(在powershell中)以区分错误命名的文件。
如果您有最新版本的xl和word文件,它们实际上只是.zip文件。您可以使用自己喜欢的PKZip阅读器并尝试打开它们。如果有XL文件夹或WORD文件夹,那么这似乎表示内容类型。您可以通过将其重命名为.zip并打开它们来轻松检查其他office文件类型。只是不要忘记重命名它们。如果前两个字符是PK
,通常可以告诉它是.zip文件。
根据Wikipedia的说法,遗留的2007年前Office文档(doc,xls,ppt,msg)的神奇数字是D0 CF 11 E0 A1 B1 1A E1
。此编号将位于文件的开头。文件格式本身也有an article,包括头部结构。
这种格式也被用于some other files in Windows,在做出假设时要小心。
您可以在文件上使用Get-contents,看看它是否包含标签“[Content_Types] .xml”
Get-content "C:\Files.doc" -match "[Content_Types].xml"
我只是在记事本中打开了一堆Excel文档,它们似乎都包含这些行
PK Somerandomgarbage
[Content_Types].xml morerandomgarbage