检查没有.xls扩展名的Excel文件

时间:2018-01-02 21:45:03

标签: excel powershell

有没有办法在不查看扩展名的情况下查询文件以查看它是否是Excel文档?

我有一种情况需要将大量文件转换为PDF(来自Excel和Word)。在某些情况下,我发现使用.doc扩展名保存的文件,但实际上是Excel文件。我已将一些重命名为.xls,它们在Excel中启动得很好。它们出现在查找器中作为Word 95文档,我想因为它们是二进制文件并且具有.doc扩展名。

Excel中是否有一些标准的标题或文本可以在字符串中搜索(在powershell中)以区分错误命名的文件。

3 个答案:

答案 0 :(得分:0)

如果您有最新版本的xl和word文件,它们实际上只是.zip文件。您可以使用自己喜欢的PKZip阅读器并尝试打开它们。如果有XL文件夹或WORD文件夹,那么这似乎表示内容类型。您可以通过将其重命名为.zip并打开它们来轻松检查其他office文件类型。只是不要忘记重命名它们。如果前两个字符为PK,您通常可以告诉它是.zip文件。

答案 1 :(得分:0)

根据Wikipedia,旧版2007年前Office文档(doc,xls,ppt,msg)的幻数为D0 CF 11 E0 A1 B1 1A E1。此编号将位于文件的开头。文件格式本身也有an article,包括标题结构。

此格式也用于some other files in Windows,在做出假设时要小心。

答案 2 :(得分:0)

您可以对文件使用Get-contents,看看它是否包含标记" [Content_Types] .xml"

Get-content "C:\Files.doc" -match "[Content_Types].xml"

我刚在记事本中打开了一堆Excel文档,它们似乎都包含行

PK Somerandomgarbage
    [Content_Types].xml morerandomgarbage