質問

私はC内のすべてのファイルを列挙するために、次のVBScriptコードスニペットを使用しています:スクリプト\ \フォルダます:

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で、大文字と小文字の区別が付いたファイルを列挙する方法はありますか?

役に立ちましたか?

解決

あなたは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

他のヒント

CIM_DataFile.Nameプロパティとは異なり、FileNameExtension特性は、大文字と小文字が区別されています。あなたはWMIを使用することが必要だのであれば、あなたは別に、ファイル名と拡張子を取得することができます:

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

マイクのソリューションは良いですが、ここでは非常にUGLY代替です:

シェルExecは、次のコマンドを実行して使用します:

dir c:\scripts /B>file.txt 

今 "file.txtなどは、" 適切な筐体に記載されているファイルが含まれています。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top