0

我正在尝试在 VBScript 中使用 FileExists 方法,并且根据我阅读的所有文档,返回的值不是布尔值。我在 Windows 7、Windows Server 2008 和 Windows Server 2003 上运行了以下脚本,而不是返回 True 或 False,如果文件存在则返回 -1,如果文件不存在则返回 0。

Dim oFile, vFile
Set oFile = CreateObject("Scripting.FileSystemObject")
vFile = "C:\pagefile.sys"
WScript.Echo oFile.FileExist(vFile)

有谁知道发生了什么?

谢谢,

结核病

4

2 回答 2

2

.FileExists 返回布尔子类型的变体。从输出中得出结论可能会产生误导,尤其是当您的输出代理是愚蠢的 WScript.Echo 时:

>> fe = GoFS.FileExists("00.vbs")
>> WScript.Echo TypeName(fe), fe, CStr(fe), CStr(-1)
>>
Boolean -1 True -1

至少 CStr() 对子类型有足够的了解,可以区分 -1(不是 True,但在某些情况下被解释为 True)和 True True。

于 2013-10-28T16:57:25.007 回答
0

WScript.Echo oFile.FileExist(vFile)缺少一个“s” 。它应该是

WScript.Echo oFile.FileExists(vFile).
于 2013-10-28T16:38:20.037 回答