积极答复者
问一个关于VBS脚本的问题

问题
-
我用一个脚本查询打印日志,结果出输的时间并没有按照日期时间格式输出,请问怎么处理?
脚本内容:
'查询日志
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colLoggedEvents = objWMIService.ExecQuery _
("Select * from Win32_NTLogEvent Where Logfile = 'system' AND EventCode = 4 AND SourceName = 'print'AND TimeWritten = '"& dtmStartDate & "' and TimeWritten < '" & dtmEndDate & "'"")
'写文本文件
Const ForAppending = 8
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile _
("C:\a.txt", ForAppending, True)
For Each objService in colLoggedEvents
objTextFile.WriteLine(objService.ComputerName & vbTab & objService.EventCode & vbTab & objService.Message & vbTab & objService.RecordNumber & vbTab & objService.SourceName & vbTab & objService.TimeWritten & vbTab & objService.Type & vbTab & objService.User)
Next
objTextFile.Close输出格式如下:
PC1 4 打印机 EPSON DLQ-1000K 删除操作搁置中。
8065 Print 20080925102153.000000+480 警告 MICROSOFT\USER
PC2 4 打印机 Send To OneNote 2007 删除操作搁置中。
7670 Print 20080911030113.000000+480 警告 NT AUTHORITY\SYSTEM输出的时间格式怎么是这种:20080925102153.000000+480
答案
-
Code Snippet
wscript.echo WMIDateStringToDate(objService.TimeWritten)
Function WMIDateStringToDate(dtmInstallDate)
WMIDateStringToDate = CDate(Mid(dtmInstallDate, 5, 2) & "/" & _
Mid(dtmInstallDate, 7, 2) & "/" & Left(dtmInstallDate, 4) _
& " " & Mid (dtmInstallDate, 9, 2) & ":" & _
Mid(dtmInstallDate, 11, 2) & ":" & Mid(dtmInstallDate, _
13, 2))
End Function
全部回复
-
Code Snippet
wscript.echo WMIDateStringToDate(objService.TimeWritten)
Function WMIDateStringToDate(dtmInstallDate)
WMIDateStringToDate = CDate(Mid(dtmInstallDate, 5, 2) & "/" & _
Mid(dtmInstallDate, 7, 2) & "/" & Left(dtmInstallDate, 4) _
& " " & Mid (dtmInstallDate, 9, 2) & ":" & _
Mid(dtmInstallDate, 11, 2) & ":" & Mid(dtmInstallDate, _
13, 2))
End Function