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 に答える