You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WMI查询CIM_DataFile类返回文件名全小写,如何保留原大小写?

解决WMI查询CIM_DataFile返回文件名小写的问题,同时保留模糊查询能力

WMI的CIM_DataFile类返回的FileName和Extension字段会自动转为小写,但Windows文件系统实际保留了文件名的大小写格式。要同时保留WMI的模糊查询优势和获取正确大小写的文件名,可以结合WMI的查询能力与FileSystemObject(FSO)的文件名读取能力来解决。

解决方案:WMI过滤+FSO获取正确文件名

利用WMI完成模糊查询筛选文件,再通过FSO根据WMI返回的文件路径获取真实大小写的文件名。WMI返回的完整文件路径(objFile.Name属性)虽然文件名部分是小写,但仍能正确指向目标文件,FSO可以通过该路径读取到文件的原始大小写名称。

修改后的脚本示例

' 初始化WMI服务
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
' 带模糊查询的WQL语句,保留WMI的筛选能力
requete = "Select * from CIM_DataFile Where Drive = 'M:' and Path ='\Cabinet\Test\' AND FileName like '%EMC%'"
set colFiles = objWMIService.ExecQuery(requete)

' 初始化FSO对象
Set oFSO = CreateObject("Scripting.FileSystemObject")

' 遍历查询结果
For Each objFile in colFiles
    ' 通过WMI返回的完整路径获取FSO文件对象
    Set fsoFile = oFSO.GetFile(objFile.Name)
    ' 输出原始大小写的文件名
    Wscript.Echo fsoFile.Name
Next

方法说明

  • WMI的作用:负责执行复杂的模糊查询(如like '%IRCANTEC%'),快速筛选出符合条件的文件,这是FSO不具备的高效筛选能力。
  • FSO的作用:通过WMI提供的文件路径,读取文件系统中真实的文件名大小写,弥补WMI返回字段小写的缺陷。

为什么WMI会返回小写文件名

这是CIM_DataFile类的设计特性,它在返回FileName和Extension属性时会自动转换为小写格式,但完整的Name属性(包含路径)仍能正确定位到目标文件,因此可以借助FSO来获取原始文件名。

内容的提问来源于stack exchange,提问作者user29417931

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 16:10:12