我使用以下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中枚举具有区分大小写的文件?
答案 0 :(得分:4)
如果您使用FileSystemObject,您将获得保留大小写的名称
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
属性不同,FileName
和Extension
属性区分大小写。因此,如果您需要使用WMI,则可以单独检索文件名和扩展名:
WScript.Echo objFile.FileName & "." & objFile.Extension
答案 2 :(得分:0)
迈克的解决方案更好,但这是一个非常糟糕的选择:
使用shell exec执行以下命令:
dir c:\scripts /B>file.txt
现在“file.txt”包含列出的文件正确。
对不起,这很难看,但很有效。