在VBScript中枚举具有区分大小写的文件?

时间:2009-06-05 16:09:38

标签: vbscript wmi case-sensitive

我使用以下VBScript代码片段来枚举我的c:\ Scripts \文件夹中的所有文件:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
   & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colFiles = objWMIService. _
   ExecQuery("Select * from CIM_DataFile where Path = '\\Scripts\\'")

For Each objFile in colFiles
    Wscript.Echo objFile.Name 
Next

不幸的是,objFile.Name以小写形式返回路径。检索所有文件名的情况很重要,即NewFileOne.txt,不应该以newfileone.txt的形式返回。

有没有办法在VBScript中枚举具有区分大小写的文件?

3 个答案:

答案 0 :(得分:4)

如果您使用FileSystemObject,您将获得保留大小写的名称

Files Collection (MSDN)

dim objFSO, path, fldr, f, msg
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set fldr = objFSO.GetFolder("C:\Scripts")

For Each f in fldr.Files
    MsgBox f.name
Next

答案 1 :(得分:1)

CIM_DataFile.Name属性不同,FileNameExtension属性区分大小写。因此,如果您需要使用WMI,则可以单独检索文件名和扩展名:

WScript.Echo objFile.FileName & "." & objFile.Extension

答案 2 :(得分:0)

迈克的解决方案更好,但这是一个非常糟糕的选择:

使用shell exec执行以下命令:

dir c:\scripts /B>file.txt 

现在“file.txt”包含列出的文件正确。

对不起,这很难看,但很有效。