在"If(IsNull(value))"行下面"我的代码是否正确?我想检查注册表项是否存在,如果没有,则显示一个网页.
Option Explicit
On error resume next
Dim SysVarReg, Value
Set SysVarReg = WScript.CreateObject("WScript.Shell")
value = SysVarReg.RegRead ("HKCU\Software\test\FirstLogonComplete")
If (IsNull(value)) then
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "c:\Program Files\Internet Explorer\iexplore.exe https://intranet/start.htm"
Dim SysVarReg2, Value2
Value2 = "TRUE"
Set SysVarReg2 = WScript.CreateObject("WScript.Shell")
SysVarReg2.RegWrite "HKCU\Software\test\FirstLogonComplete", Value2
else
wscript.echo "Already logged on"
end if
Run Code Online (Sandbox Code Playgroud)
在VBScript中 - 所有变量都是变量 - 变量可以是两个特殊值之一:EMPTY或NULL.EMPTY定义为具有未初始化值的变量,而NULL是不包含有效数据的变量.
如果要测试变量'value'是NULL还是EMPTY,请使用以下if语句:
If IsNull(value) Or IsEmpty(value) Then
'...do something
End If
Run Code Online (Sandbox Code Playgroud)
小智 5
如果RegRead抛出错误,则value不会初始化; 未初始化的变量具有值Empty,而不是Null.因此,您应该添加该行
value = Null
Run Code Online (Sandbox Code Playgroud)
后Dim声明.否则,IsNull总会回来False.