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