Board logo

标题: 提取文件版本信息(版本号) [打印本页]

作者: mandyonly     时间: 2007-6-7 16:08    标题: 提取文件版本信息(版本号)

请问:如何将windows文件夹中的文件名称和版本号用命令行提取出来,并存到一个txt文件中?文件大都是.exe,.dll格式。多谢。

不一定一定要用批处理,用其他语言也可以,能不能给出例子呢?谢谢.

[ Last edited by mandyonly on 2007-6-7 at 04:27 PM ]
作者: zh159     时间: 2007-6-7 16:19
批处理提取版本号估计没戏,VBS以前试过可以,不过现在忘了
作者: yong119     时间: 2007-6-7 16:41
wmic datafile where "Name='c:\\windows\\explorer.exe'" get Manufacturer,Version,Filename
作者: mandyonly     时间: 2007-6-7 16:47
这时用什么语言写的?
作者: wudixin96     时间: 2007-6-7 17:05
wmic datafile where "Name='c:\\windows\\explorer.exe'" get Manufacturer,Version,Filename

是P啊?
作者: zh159     时间: 2007-6-7 17:12
wmic不错
作者: mandyonly     时间: 2007-6-7 17:13
如果文件是多个,存在一个文件夹中,我要提取的是文件夹中的所有的文件名和版本,而不是5楼说的具体的一个文件名,该怎么办呢?
作者: HAT     时间: 2007-6-7 17:33
//我要提取的是文件夹中的所有的文件名和版本
@echo off
set Target=C:\\test
cd %Target%
for %%i in (*.*) do (
  rem echo %%i
  wmic datafile where "Name='%Target%\\%%i'" get Manufacturer,Version,Filename
  )

作者: mandyonly     时间: 2007-6-7 18:02
多谢!
作者: lxmxn     时间: 2007-6-8 02:12    标题: 我也来玩玩


wmic /output:result.log datafile where "Path='\\windows\\system32\\' and Drive='C:' and (Extension='dll' or Extension='exe')" get Manufacturer,Version,Caption
运行时间可能稍长点,耐心等待。。
作者: zh159     时间: 2007-6-9 22:19
VBS的,只提取有版本号的“应用程序”(exe)、“应用程序扩展”(dll)
Path = "C:\windows"

Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(Path)

For Each strFileName in objFolder.Items
    name = objFolder.GetDetailsOf(strFileName, 0)
    Extension = objFolder.GetDetailsOf(strFileName, 2)
    ver = objFolder.GetDetailsOf(strFileName, 37)
  If not ver = "" Then
    If Extension = "应用程序" Then
      str = str & name & ".exe:" & ver & vbCrLf
    Else
      If Extension = "应用程序扩展" Then str = str & name & ":" & ver & vbCrLf
    End If
  End If
Next

Set fW = fso.OpenTextFile("result.log", 2, True)
  fW.WriteLine str
  fW.close
所有的“应用程序”(exe)、“应用程序扩展”(dll)都提取
Path = "C:\windows"

Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(Path)

For Each strFileName in objFolder.Items
    name = objFolder.GetDetailsOf(strFileName, 0)
    Extension = objFolder.GetDetailsOf(strFileName, 2)
    ver = objFolder.GetDetailsOf(strFileName, 37)
    If Extension = "应用程序" Then
      str = str & name & ".exe:" & ver & vbCrLf
    Else
      If Extension = "应用程序扩展" Then str = str & name & ":" & ver & vbCrLf
    End If
Next

Set fW = fso.OpenTextFile("result.log", 2, True)
  fW.WriteLine str
  fW.close
[ Last edited by zh159 on 2007-6-9 at 10:21 PM ]
作者: benteng302     时间: 2007-6-10 08:07
哦,好东东亚。
作者: wbshu     时间: 2007-7-6 10:42
要这么麻烦吗?
用"filever /v filename" 命令就可以得到一个文件的版本信息.
作者: lxmxn     时间: 2007-7-6 10:46
filever 是个三方工具?
作者: zh159     时间: 2007-7-6 11:57


  Quote:
Originally posted by wbshu at 2007-7-6 10:42:
要这么麻烦吗?
用"filever /v filename" 命令就可以得到一个文件的版本信息.



  Quote:
C:\>filever/?
'filever' 不是内部或外部命令,也不是可运行的程序
或批处理文件。


作者: wbshu     时间: 2007-7-7 15:11
是微软工具包里的工具,我也是最近知道的.搜索一下就能找到,(我不会上传附件).
作者: qinbuer     时间: 2007-7-7 15:39
filever集成在Windows XP Service Pack 2 Support Tools中,可在华军或者微软官方下载:

http://www.onlinedown.net/soft/21532.htm

http://www.microsoft.com/downloa ... &displaylang=en
作者: sonicandy     时间: 2008-5-24 23:02
好帖要顶,今天用到了,呵呵.
作者: joyoustar     时间: 2009-1-14 16:29


  Quote:
Originally posted by qinbuer at 2007-7-7 03:39 PM:
filever集成在Windows XP Service Pack 2 Support Tools中,可在华军或者微软官方下载:

http://www.onlinedown.net/soft/21532.htm

[url]http://www.microsoft.com/downloads/de ...

谢谢了!!