VBscript 循环 - 每 15 分钟报一次

VBscript loop - Tell time every 15 minutes

我只想要一个我可以 double-click 并让 Windows 每 15 分钟口头告诉我一次时间的文件。 (直到我终止进程)

我找到了一个 VBscript 教程,它每小时都在整点报时: https://www.nextofwindows.com/windows-trick-how-to-make-your-computer-to-speak-out-time-at-every-hour

我无法让 Windows 调度程序为我的目的使用它(仅在 double-clicked 和 运行 每 15 分钟启动一次),老实说,我只想一个 15-minute-interval 循环编程到脚本本身。 (也许通过使用 Do/While 循环和 Sleep()?)

另一个问题:

我尝试添加一个分钟变量,这样 Windows 也会宣布会议纪要:

Dim speaks, speech
speaks = “It is ” & hour(time) & minute(time)
Set speech = CreateObject(“sapi.spvoice”)
speech.Speak speaks

但是,它以一种奇怪的格式宣布时间。例如,它当前是 5:01AM,当我 运行 脚本时,Windows 说 "It is fifty-one." 为什么它会将 5:01 解释为五十加一?早些时候,当我在 4:32 测试它时,它说 "four hundred and thirty-two." 我希望它以正常的 12 小时格式显示时间。

这需要 5 秒。所以 60 x 15 = 900.

如果您希望将数字解析为单独的数字,则数字之间需要空格。

Set speech = CreateObject("sapi.spvoice")
Do
    If Hour(Now) < 12 then 
        Var = Hour(Now) & " AM"
    else
        Var = Hour(Now) - 12 & " PM" 
    End If

    speech.Speak Var &  " and " & Minute(Now) & " minutes and " & Second(Now) & " seconds"
    wscript.sleep 5
Loop