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

发布于 2024-07-22 09:39:34 字数 534 浏览 3 评论 0原文

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

I am using the following VBScript code snippet to enumerate all files in my c:\Scripts\ folder:

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

Unfortunately objFile.Name returns the path in all lower-case. It is important to me to retrieve the case of all file names, i.e. NewFileOne.txt, should not be returned as newfileone.txt.

Is there a way to enumerate files with case-sensitivity in VBScript?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

巴黎盛开的樱花 2024-07-29 09:39:34

如果您使用 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

If you use the FileSystemObject, you will get back names with the case preserved

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
真心难拥有 2024-07-29 09:39:34

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

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

Unlike the CIM_DataFile.Name property, the FileName and Extension properties are case sensitive. So, if it's necessary for you to use WMI, you can retrieve the file name and extension separately:

WScript.Echo objFile.FileName & "." & objFile.Extension
╰◇生如夏花灿烂 2024-07-29 09:39:34

迈克的解决方案更好,但这里有一个非常丑陋的替代方案:

使用 shell exec 执行以下命令:

dir c:\scripts /B>file.txt 

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

抱歉,它很难看,但有效。

Mike's solution is better, but here's A VERY UGLY alternative:

Using the shell exec execute the following command:

dir c:\scripts /B>file.txt 

Now "file.txt" contains the file listed with proper casing.

Sorry, it's ugly but works.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文