Vbscript 如何检查是否设置了对象?

Vbscript 如何检查是否设置了对象?,vbscript,Vbscript,我有: 这很有效。然后我尝试: 'Set logFileObj = fso.CreateTextFile("cit.log",True) if logFileObj = "" then WScript.StdOut.WriteLine "logFileObj not set" else WScript.StdOut.WriteLine "logFileObj set" end if 我发现Microsoft VBScript运行时错误:对象不支持此属性或方法 我已经用

我有:

这很有效。然后我尝试:

'Set logFileObj = fso.CreateTextFile("cit.log",True)    
if logFileObj = "" then 
    WScript.StdOut.WriteLine "logFileObj not set"
else
    WScript.StdOut.WriteLine "logFileObj set"
end if
我发现Microsoft VBScript运行时错误:对象不支持此属性或方法


我已经用
替换了
如果logFileObj=“”,那么
如果logFileObj=nothing,那么

您可以使用Isobject,如下代码所示:-

Set logFileObj = fso.CreateTextFile("cit.log",True)    
if logFileObj = nothing then 
    WScript.StdOut.WriteLine "logFileObj not set"
else
    WScript.StdOut.WriteLine "logFileObj set"
end if

若要将某个内容与无内容进行比较,必须使用
Is
和not
=

if isobject(logFileObj) then
   WScript.StdOut.WriteLine "logFileObj not set"
else    
   WScript.StdOut.WriteLine "logFileObj set"
end if
这是因为
=
不能用于比较VBScript中的对象引用,而
是对空对象的引用


更多信息,请参阅
Nothing
上的文档:

可能重复的哇哦,乌鸦真的很快就落到了这些乌鸦身上,可惜它们没有那么快地将它们标记为重复!你认为这些年来有多少人问过“我如何检查一个对象是否被设置了?”我刚刚读了那篇文章,我已经搜索了大约5-10分钟的答案,那篇文章的答案甚至没有“如果”的陈述,所以它没有回答我的问题,我也没有从5-10分钟的时间里推断出答案?你可以看到右边的“相关”部分,看看下面的第二个问题。@Lankymart是的,正如我所说的,我找到了那个问题,但我没有从中推断出答案-因此我的问题你应该更清楚,这个问题是一个明显的重复。谢谢(不是那么明显的重复)答案-这比另一个问题的答案更清楚-正是我想要的:)@code\u fodder这完全是同一个问题,如果这个答案“更清楚”,那就把它贴在这里吧,就像我说的Keith应该知道得更清楚。
没有什么
只是一个特殊的对象引用,
Is
比较对象引用,看看它们是否相等就这么简单。这个答案是错误的。如果表达式是自动对象,IsObject将返回TRUE。另外两个其他的紧接在一起的代码是不工作的。你所说的自动对象是什么意思?你可以忽略自动对象。这不是重点。关键是当设置logFileObj=Nothing时,IsObject(logFileObj)返回true。这不是Op要求的。它只告诉您变量是否为object类型,而不告诉您是否已设置。。
Set logFileObj = fso.CreateTextFile("cit.log", True)
If logFileObj Is Nothing Then
    WScript.StdOut.WriteLine "logFileObj not set"
Else
    WScript.StdOut.WriteLine "logFileObj set"
End If