我有一个xxx.ppt文件。我需要确定这个文件是以2003格式还是97格式还是95格式或者早于这个版本的版本。我试图检查文件属性,它只是说微软Powerpoint。没有提到的版本。我尝试使用Apache POI并获得版本号“ppt版本[50334156]”。我找不到97以前的格式文件的规范文件。处理这些二进制文件非常痛苦。如何识别.ppt文件是2003格式还是97格式或95格式
回答
我不知道为什么你需要这样做,但我发现它非常有趣(可以做到吗?)所以我写了这个非常丑陋的powershell黑客。
$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(并以此使我们能够读取XML文件来自ppt)获取app.xml并为您提供版本号(Office95 = 7.0,Office 97(8.0),由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))
如果您可以读取PPTX中的xml文件(注意:不是PPT),那么它是一个PowerPoint 2007或更高版本的文件。早期版本(2003和更早版本)使用完全不同的格式;它们不是XML内部的,它们不是ZIP文件。 –
嗨卡尔,谢谢你的回复。您的脚本将适用于基于OOXML的** .PPTX **文件。但是PPT文件是二进制流,里面不会有任何app.xml文件。 – Bala
- 1. 不是可执行格式:文件格式无法识别GDB
- 2. 可以制作excel电子表格(97 - 2003格式)
- 3. 识别rtf格式
- 4. 在Excel 2007中运行宏后,文件在Excel 2003中的格式不是可识别的格式
- 5. GNAT-GVD:不是可执行格式:文件格式无法识别
- 6. 如何识别客户机是否支持PDF文件格式
- 7. 下载ppt格式
- 8. 在ByteString中识别栅格(jpg,png等)或svg文件格式
- 9. 如何识别Excel文件是否符合Excel 95或Excel 97规范?
- 10. 在PPT中将PPTX或PPT文件转换为PDF格式
- 11. 有没有办法确定文件是YAML格式还是JSON格式?
- 12. 如何将正确的DataType插入Excel 97-2003格式
- 13. 无法识别文件格式
- 14. C++“文件格式无法识别”?
- 15. 识别格式错误的XML文件
- 16. 识别不同的Excel文件格式
- 17. Excel 2003中的条件格式(更改文本格式)
- 18. Fortran格式化90/95
- 19. 如何检查输入是日期格式还是整数格式?使用java
- 20. 文件无法识别:文件格式无法识别
- 21. loop_apply.o:无法识别文件:无法识别文件格式
- 22. gcc - 无法识别的文件:文件格式不被识别
- 23. 发票格式识别器
- 24. 识别此图片格式
- 25. 识别日期格式
- 26. 识别日期格式
- 27. MPEG ADTS格式识别
- 28. 如何确认文件是XML格式?
- 29. SSRS呈现格式PPT/PPTX
- 30. RichTextBox.RTF返回unicode格式还是ANSI格式?
你真的很可能遇到所有那么多PPT 95格式文件?自97/2000/2002/2003以来,所有格式都一样,至少这些不应该是一个问题。 –
嗨史蒂夫,我只关心97和以上的格式文件。但是当我得到一堆测试文件时,我需要过滤掉所有的前97格式文件,这是我现在触及的地方。我不知道如何区分使用Office 95与Office 2003创建的.ppt文件。 – Bala
它可能有助于了解较新版本的PPT根本不会打开PPT 95文件,因此您可以尝试打开该文件,处理任何导致的错误(可能是因为它是PPT95或可能是其他问题) –