Vbscript 在日志文件中使用的格式时间最长为毫秒

Vbscript 在日志文件中使用的格式时间最长为毫秒,vbscript,milliseconds,Vbscript,Milliseconds,我的VBScript有一个日志文件,它使用FormatDateTime函数记录当前日期和时间的信息 我喜欢将时间的格式设置为毫秒,也可以设置为以下格式: MM/DD/YY hh:mm:ss:mss AM/PM 但是,不幸的是,FormatDateTime不允许以这种方式格式化时间。 在搜索了这个之后,我找到了它,它是关于如何使用Timer函数的,所以我不能一次又一次地记录时间来记录文件 正如W3schools所说, 计时器函数返回从12:00 AM开始的秒数 但是我想让我的日志文件在凌晨12:

我的VBScript有一个日志文件,它使用
FormatDateTime
函数记录当前日期和时间的信息

我喜欢将时间的格式设置为毫秒,也可以设置为以下格式:

MM/DD/YY hh:mm:ss:mss AM/PM
但是,不幸的是,
FormatDateTime
不允许以这种方式格式化时间。 在搜索了这个之后,我找到了它,它是关于如何使用
Timer
函数的,所以我不能一次又一次地记录时间来记录文件

正如W3schools所说,

计时器函数返回从12:00 AM开始的秒数

但是我想让我的日志文件在凌晨12:00之前以上述格式记录时间,所以使用
Timer
函数并不是最好的选择


请特别在日志文件中告诉我正确执行此操作的方法。

vbscript函数
Now()
将以这种格式返回当前系统日期和时间-
5/2/2017 9:45:34 AM
,但是如果需要添加毫秒,可以使用
计时器


另一种做同样事情的方法,代码少一点。在这段代码中,我们将
Now()
拆分为一个数组,这样我们就可以将它用于除毫秒以外的所有内容:

WScript.Echo PrintTimeStamp()

Function PrintTimeStamp()
    nowParts = SPLIT(Now(), " ")
    timePart = nowParts(1)
    t = Timer
    milliseconds = Int((t-Int(t)) * 1000)
    PrintTimeStamp = nowParts(0) & " " & LeftPad(nowParts(1), "0", 8) & "." & LeftPad(milliseconds, "0", 3) & " " & nowParts(2)
End Function
Function LeftPad(str, addThis, howMany)
    LeftPad = String(howMany - Len(str), addThis) & str
End Function

在这里告诉我
LeftPad
的用途。已编辑-我编写了函数,但没有实现它-现在它已修复。LeftPad将
0
s添加到字符串的左侧,以确保其长度始终相同。如果没有它,12:09 AM将打印为12:9 AM谢谢:-)我做了一个小编辑以捕获顶部的日期-这通常不重要,但如果您的时间正好,它可能会返回格式
Now()
返回纯粹基于系统区域设置,它不会总是
2017年5月2日9:45 AM
。一天结束时,
日期
时间
存储为64位有符号浮点值,表示自1899年12月30日午夜以来经过的天数,时间部分表示一天中的一小部分的当前时间,这种格式纯粹是美观的。当我尝试在循环中使用它时,如
Do WScript.Echo loop
,会不断重复显示相同的时间:-我将时间收集部分包装在一个函数中-现在您可以在循环中调用该函数。
WScript.Echo PrintTimeStamp()

Function PrintTimeStamp()
    nowParts = SPLIT(Now(), " ")
    timePart = nowParts(1)
    t = Timer
    milliseconds = Int((t-Int(t)) * 1000)
    PrintTimeStamp = nowParts(0) & " " & LeftPad(nowParts(1), "0", 8) & "." & LeftPad(milliseconds, "0", 3) & " " & nowParts(2)
End Function
Function LeftPad(str, addThis, howMany)
    LeftPad = String(howMany - Len(str), addThis) & str
End Function