datetime - VBScript-运行文件的日期和时间约束

标签 datetime audio if-statement vbscript runtime-error

好的,我是刚开始编写VBScript的人,我想编写仅在特定日期和特定时间之间播放文件(WAV格式)的代码字符串。将在互联网上找到的多个代码片段拼凑在一起后,剩下的内容如下:

Dim myDateString 
Dim thing1 
thing1 = 0 
myDateString = Date() 
If myDateString < "13/08/13" Then 
thing1 = 1 
end if 
if thing1 = 1 then  
If myDateString > "15/08/13" Then 
thing1 = 2 
end if  
end if

if thing1 = 2 then 

hournow = hour(Time())
If hour(Time()) >= 9 And Hour(Now()) < 22 Then

set WshShell = CreateObject("WScript.Shell")

music = "C:\Users\MYUSERNAME\Desktop\MYSOUND.wav"

WshShell.Run "wmplayer """ & music & """",0,True

Else     
wscript.quit 1 
End If

Else
wscript.quit 1
End If

好的,所以我已将其设置为在我进入这个小时之内运行的日期。但是
它没有用。我希望VBS开始播放MYSOUND.wav,但事实并非如此。运行文件时
虽然没有错误,所以我想知道自己做错了!

我运行Windows 7

如果有人能告诉我我做错了什么以及如何解决,那将是很棒的。

如果有人可以发布正确版本的代码,请加倍加分!

感谢任何答案!

最佳答案

首先,缩进代码并为变量赋予有意义的名称!

然后,日期比较不起作用,因为您试图将字符串当作日期进行比较。这通常不起作用(取决于您的“系统区域设置”):您需要使用日期类型变量和实际的日期比较功能(VBScript中的DateDiff)。

(编辑:正如Ansgar Wiechers指出的那样,您不需要使用DateDiff在VBScript中比较日期,“DateStart <= Now And Now <= DateEnd”就可以了)

试试这个:

Dim DateStart, DateEnd, WshShell, music

DateStart = DateSerial(2013, 8, 13)
DateEnd = DateSerial(2013, 8, 15)
If DateDiff("D", DateStart, Now) >= 0 And DateDiff("D", Now, DateEnd) >= 0 Then
    If Hour(Now) >= 9 And Hour(Now) < 22 Then
        '*** delete after debugging ***
        MsgBox "play sound"
        Set WshShell = CreateObject("WScript.Shell")
        music = "C:\Users\MYUSERNAME\Desktop\MYSOUND.wav"
        '*** 2nd parameter : 0 hides wmplayer, 1 shows it ***
        WshShell.Run "wmplayer """ & music & """", 1, True
    Else
        '*** delete after debugging ***
        MsgBox "Not the right time"
    End If
Else
    '*** delete after debugging ***
    MsgBox "Not the right day"
End If

另外,如果您要调试这样的小脚本,则可以调用MsgBox来简单跟踪实际执行的操作(在您的示例中,用MsgBox替换“WScript.Quit 1”会向您显示日期不正确比较。

关于datetime - VBScript-运行文件的日期和时间约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18228366/

相关文章:

linux - 用户空间程序如何与内核模块交互?

android - 增加扬声器电话的音量,超过限制的Android

javascript - 带有 css 值的 jQuery/javascript if 语句

MYSQL 获取存储为字符串的日期和时间并按 ORDER BY

python-3.x - librosa.util.exceptions.ParameterError : Invalid shape for monophonic audio: ndim=2, 形状=(1025, 5341)

c# - 根据条件搜索数据

php - 在 PHP 中检查来自 JQuery POST 的 boolean 变量

windows - Node.js Windows 8 日期时间不正确,使用 GMT

python - pd.Grouper 与日期时间键结合另一个分组键似乎创建了错误的组数

Perl DateTime 模块计算第一、第二、第三、第四、最后一个星期日、星期一、...每个月的星期六