1

我正在使用以下 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 中枚举区分大小写的文件?

4

3 回答 3

4

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

文件收集 (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
于 2009-06-05T16:26:51.907 回答
1

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

WScript.Echo objFile.FileName & "." & objFile.Extension
于 2009-06-08T06:25:59.920 回答
0

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

使用 shell exec 执行以下命令:

dir c:\scripts /B>file.txt 

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

对不起,它很丑但有效。

于 2009-06-05T16:28:32.547 回答