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プロパティFileNameExtensionプロパティでは大文字と小文字が区別されます。そのため、WMI を使用する必要がある場合は、ファイル名と拡張子を個別に取得できます。

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

マイクのソリューションの方が優れていますが、非常に醜い代替案を次に示します。

シェル exec を使用して、次のコマンドを実行します。

dir c:\scripts /B>file.txt 

現在、「file.txt」には、適切な大文字と小文字でリストされたファイルが含まれています。

申し訳ありませんが、それは醜いですが動作します。

于 2009-06-05T16:28:32.547 に答える