vbscript에서 케이스 감도가있는 파일을 열거하십니까?
-
12-09-2019 - |
문제
다음 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)의 사례를 검색하는 것이 중요합니다.
vbscript에서 케이스 감수성으로 파일을 열거하는 방법이 있습니까?
해결책
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
다른 팁
와는 달리 CIM_DataFile.Name
속성, FileName
그리고 Extension
속성은 사례에 민감합니다. 따라서 WMI를 사용해야하는 경우 파일 이름과 확장자를 개별적으로 검색 할 수 있습니다.
WScript.Echo objFile.FileName & "." & objFile.Extension
Mike의 솔루션은 더 좋지만 여기에 매우 추악한 대안이 있습니다.
쉘 exec 사용 다음 명령을 실행합니다.
dir c:\scripts /B>file.txt
이제 "file.txt"에는 적절한 케이싱이 표시된 파일이 포함되어 있습니다.
죄송합니다. 못 생겼지 만 작동합니다.
제휴하지 않습니다 StackOverflow