VBScript を使用して、特定のフォルダー内のすべての csv を選択し、それらを 1 つに連結しようとしています。パスと拡張プロパティを指定して、Win32_Directory で ExecQuery を使用して、すべての csv をコレクションに追加しています。テストするフォルダに 5 つの csv があります。ただし、返されるコレクションは常に null です。
これが私のコードです:
strComputer = "."
Set wshShell = WScript.CreateObject( "WScript.Shell" )
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
'Options for CreateTextFile
boolOverwrite = True
boolUnicode = True
'Options for OpenTextFile
constForReading = 1
constForWriting = 2
constForAppending = 8
boolCreate = False
constTristate = -1
strPath = "C:\Users\adam\Documents\Test\Temp.csv"
strDrivePath = "C:\Users\adam\Documents\Test"
'Creates object reference to files in relevant folder.
Set objFSO = CreateObject ("Scripting.FileSystemObject")
'Creates new CSV to write others' contents to.
Set objNew = objFSO.CreateTextFile(strPath,boolOverwrite,boolUnicode)
Set colCSV = objWMIService.ExecQuery _
("SELECT * FROM Win32_Directory WHERE Path = strDrivePath AND Extension = 'csv'")
'Concatenates contents of CSVs
For Each objCSV in colCSV
Set objTemp = objFSO.OpenTextFile(objCSV.Path & objCSV.FileName & objCSV.Extension,constForReading,boolCreate,constTristate)
Set strLine = objTemp.ReadLine
objNew.Write strLine
Next
また、OpenTextFile のパスを指定した方法が機能するかどうかもわかりません。しかし、現在の私の主な関心事は、必要なファイルを返すクエリを取得することです。
助けてくれてありがとう!