2016-04-19 13 views
0

特定の日付に作成されたファイルを特定の場所に表示するスクリプトを作成します。 は今のとして、私はこの作成:特定の日付に作成されたファイルを表示するVBSスクリプト

Set objWMIService = GetObject("winmgmts:" & "!\\" & "." & "\root\cimv2") 
 
Set colFiles = objWMIService.ExecQuery ("Select * from CIM_DataFile where Drive='C:' AND Path='\\' AND CreationDate Like '20071107%' ") 
 
For Each objFile in colFiles 
 
Buffer = Buffer & objFile.FileName & " - " & objFile.CreationDate & vbNewLine 
 
Next 
 
Wscript.echo Buffer

をしかし、私は、この行でエラーを取得しています:それはような方法では動作しませんので 「ANDのCreationDate 『と同様20071107%』」私はそれがあると思った - C:\私はたくさんのeula.txtファイルを2007年に作成しました07. 私は完成したコードについては尋ねませんが、ヒントのためだけです。ありがとう!

答えて

0

WHEREWQLクエリは、CIM_DATETIME値でワイルドカードを使用することを拒否または禁止します。 SWbemDateTime objectを次のように使用してください。

option explicit 
On Error GoTo 0 
Dim strResult: strResult = Wscript.ScriptName 
Dim objWMIService, colFiles, objFile, dTargetDate, dMinDate, dMaxDate, dateTime 

Set dateTime = CreateObject("WbemScripting.SWbemDateTime") 
dTargetDate = #2007-11-07#   ' date literal in yyyy-mm-dd format 

dateTime.SetVarDate(dTargetDate) ' convert to CIM_DATETIME 
dMinDate = datetime    

dateTime.SetVarDate(DateAdd("d", 1, dTargetDate)) 
dMaxDate = datetime 
strResult = strResult & vbNewLine & dMaxDate 


Set objWMIService = GetObject("winmgmts:" & "!\\" & "." & "\root\cimv2") 
Set colFiles = objWMIService.ExecQuery (_ 
    "Select * from CIM_DataFile where Drive='c:' AND Path='\\'" _ 
    & " AND CreationDate >= '" & dMinDate & "'" _ 
    & " AND CreationDate < '" & dMaxDate & "'" _ 
    ) 

If colFiles.Count = 0 Then 
    strResult = strResult & vbNewLine & "no files found" 
Else 
    For Each objFile in colFiles 
    strResult = strResult & vbNewLine & objFile.FileName & " " & objFile.Extension _ 
     & " - " & objFile.CreationDate 
    Next 
End If 

Wscript.Echo strResult 
Wscript.Quit 
関連する問題