如何识别.ppt文件是2003格式还是97格式或95格式

时间:2014-03-06 11:24:37

标签: file format powerpoint

我有一个xxx.ppt文件。我需要确定此文件是2003格式还是97格式或95格式还是旧版本。我试过检查文件属性,它只是说Microsoft Powerpoint。没有提到版本。我尝试使用Apache POI并获得了类似“ppt版本[50334156]”的版本号。我找不到前97格式文件的任何规范文档。使用这些二进制文件是一件很痛苦的事。

1 个答案:

答案 0 :(得分:0)

我不知道为什么你需要这样做,但我觉得它非常有趣(可以吗?)所以我写了这个非常丑陋的PowerShell hack。

 $shell = new-object -com shell.application
 Rename-Item C:\Temp\Presentation1.ppt C:\Temp\Presentation1.zip
 $zip = $shell.NameSpace(“C:\Temp\Presentation1.zip”)
 mkdir C:\temp\ziptest
 foreach($item in $zip.items())
 {
    $shell.Namespace(“C:\temp\ziptest”).copyhere($item)
 }

 $file = Get-Content C:\temp\ziptest\docprops\app.xml | Select-String -Pattern ("<AppVersion>([\s\S]*?)</AppVersion>") 
 Remove-Item -Recurse -Force C:\temp\ziptest\ 
 clear 
 echo $file.Matches[0].Groups[1].Value

要使用它,你必须添加一个函数,将你的ppt文件读入一个变量,然后循环遍历这个片段,该片段会将它们重命名为.zip(这样我们就可以从ppt读取xml文件了)获取app.xml并为您提供版本号(Office95 = 7.0,Office 97(8.0),Office 97由Word 98(8.5),Office 2000(9.0),Office XP(10.0),Office 2003(11.0)提供支持,Office 2007(12.0),Office 2010(14.0),Office 2013(15.0))