Перечислять файлы с учетом регистра в VBScript? - PullRequest
1 голос
/ 05 июня 2009

Я использую следующий фрагмент кода 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 ]

4 голосов
/ 05 июня 2009

Если вы используете 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
1 голос
/ 08 июня 2009

В отличие от свойства CIM_DataFile.Name, свойства FileName и Extension чувствительны к регистру. Итак, если вам необходимо использовать WMI, вы можете получить имя и расширение файла отдельно:

WScript.Echo objFile.FileName & "." & objFile.Extension
0 голосов
/ 05 июня 2009

Решение Майка лучше, но вот ОЧЕНЬ УЖАСНАЯ альтернатива:

С помощью оболочки exec выполните следующую команду:

dir c:\scripts /B>file.txt 

Теперь "file.txt" содержит файл, указанный в правильном регистре.

Извините, это некрасиво, но работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...